stian123 Skrevet 21. juli 2008 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 =)
LordjOX Skrevet 22. juli 2008 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.
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å