Gå til innhold

Anbefalte innlegg

Hei!

Skal lage en tabell som skal se omtrent slik ut:

CREATE TABLE `shop_data` (

".ORDERS_TABLE."(
orderID INT PRIMARY KEY AUTO_INCREMENT ,
order_time DATETIME( 30 ) ,
cust_firstname VARCHAR( 30 ) ,
cust_lastname VARCHAR( 30 ) ,
cust_email VARCHAR( 30 ) ,
cust_country VARCHAR( 30 ) ,
cust_zip VARCHAR( 30 ) ,
cust_state VARCHAR( 30 ) ,
cust_city VARCHAR( 30 ) ,
cust_address VARCHAR( 30 ) ,
cust_phone VARCHAR( 30 ) 
) ";
" CREATE TABLE ".ORDERED_CARTS_TABLE."(
productID INT NOT NULL ,
orderID INT NOT NULL ,
nameCHAR( 255 ) ,
Price FLOAT,
Quantity INT,
PRIMARY KEY ( productID, orderID ) 
) ");
" CREATE TABLE ".PRODUCTS_TABLE."(
productID INT PRIMARY KEY AUTO_INCREMENT ,
categoryID INT,
name VARCHAR( 255 ) ,
description TEXT,
customers_rating FLOAT NOT NULL ,
Price FLOAT,
picture VARCHAR( 30 ) ,
in_stock INT,
thumbnail VARCHAR( 30 ) ,
customer_votes INT NOT NULL ,
items_sold INT NOT NULL ,
big_picture VARCHAR( 30 ) ,
enabled INT NOT NULL ,
brief_description TEXT,
list_price FLOAT,
product_codeCHAR( 25 ) 
) ");
" CREATE TABLE ".CATEGORIES_TABLE."(
categoryID INT PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR( 255 ) ,
parent INT,
products_count INT,
description TEXT,
picture VARCHAR( 30 ) ,
products_count_admin INT
) ");
CREATE TABLE ".SPECIAL_OFFERS_TABLE. " (offerID INT PRIMARY KEY AUTO_INCREMENT, productID INT, sort_order INT)" 



Den skal være til en nettbutikk. Men når jeg skal lagre denn kommer denne feilmeldinga:

MySQL sa:

 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '".ORDERS_TABLE."(

orderID INT PRIMARY KEY AUTO_INCREMENT ,

order_time DATETIME' at line 3

 

Vet ikke så mye om databaser, men prøver å lage en tabell på grunnlag av dette:

db_query("CREATE TABLE ".ORDERS_TABLE." (orderID INT PRIMARY KEY AUTO_INCREMENT, order_time DATETIME, cust_firstname VARCHAR(30), cust_lastname VARCHAR(30), cust_email VARCHAR(30), cust_country VARCHAR(30), cust_zip VARCHAR(30), cust_state VARCHAR(30), cust_city VARCHAR(30), cust_address VARCHAR(30), cust_phone VARCHAR(30))") or die (db_error());
db_query("CREATE TABLE ".ORDERED_CARTS_TABLE." (productID INT NOT NULL, orderID INT NOT NULL, name CHAR(255), Price FLOAT, Quantity INT, PRIMARY KEY (productID, orderID))") or die (db_error());
db_query("CREATE TABLE ".PRODUCTS_TABLE." (productID INT PRIMARY KEY AUTO_INCREMENT, categoryID INT, name VARCHAR(255), description TEXT, customers_rating FLOAT NOT NULL, Price FLOAT, picture VARCHAR(30), in_stock INT, thumbnail VARCHAR(30), customer_votes INT NOT NULL, items_sold INT NOT NULL, big_picture VARCHAR(30), enabled INT NOT NULL, brief_description TEXT, list_price FLOAT, product_code CHAR(25))") or die (db_error());
db_query("CREATE TABLE ".CATEGORIES_TABLE." (categoryID INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), parent INT, products_count INT, description TEXT, picture VARCHAR(30), products_count_admin INT)") or die (db_error());
db_query("CREATE TABLE ".SPECIAL_OFFERS_TABLE." (offerID INT PRIMARY KEY AUTO_INCREMENT, productID INT, sort_order INT)") or die (db_error());

 

Noen som ser hva jeg har gjort feil?

 

Takker for svar =)

Lenke til kommentar
Videoannonse
Annonse

Hei,

 

Problemet er at det du baserer deg på er php kode sammen med SQL.

 

CREATE TABLE ".ORDERS_TABLE." er ikke gyldig SQL. Her er det ment at man har en variabel (vanligvis bruker uppercase for å angi konstanter) som man vil konkatenere med "CREATE TABLE " og "(orderID INT ..." for å danne setningen "CREATE TABLE OrdreTabell (orderID INT ..." hvis ORDERS_TABLE = 'OrdreTabell'.

 

Alt i alt så må du fjerne alle dobbel-fnutter (") og de ".KONSTANT." konkateneringene og erstatte de med gyldige og meningsfulle tabellnavn.

 

Foreslår at du leser mer om SQL enn bare å snippe litt kode og forvente at det fungerer. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...