stian123 Skrevet 21. juli 2008 Del Skrevet 21. juli 2008 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
LordjOX Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå