Problem med att skapa tabeller i PHP/MySQL

Permalänk
Medlem

Problem med att skapa tabeller i PHP/MySQL

Tja!

Jag håller på o gör ett script som ska göra databasen + alla tabeller åt mig så jag ska slippa det

det ser ut så här men den skapar databasen o sen skiter den i tabellerna.

<?php // -=INSERT RIGHT INFO HERE=- $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } // Create database if (mysql_query("CREATE DATABASE my_db",$con)) { echo "Database created"; } else { echo "Error creating database: " . mysql_error(); } // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Cpu ( Tillverkare varchar(25), Socket varchar(25), Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Gpu ( Gpu Tillverkare varchar(25), Gpu Formfaktor varchar(25), Gpu Socket varchar(25), Gpu Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Mobo ( Cpu Tillverkare varchar(25), Gpu Tillverkare varchar(25), Gpu Form varchar(25), Ram Form varchar(25), Ram Typ varchar(25), Chassi Formfaktor varchar(25), Socket varchar(25), Max Ram int, Ram Hastighet(MHz) int, Antal Portar int, Hdd Formfaktor varchar(25), Cd Formfaktor varchar(25), Hdd Rpm int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Chassi ( Chassi Formfaktor varchar(25) )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Hdd ( Hdd Formfaktor varchar(25), Hdd Power(MHz) int, Hdd rpm int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Cd ( Cd Formfaktor varchar(25), Cd Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Audio ( Audio Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Natagg ( Max Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE kylning ( Cpu Tillverkare varchar(25), Cpu Socket varchar(25), Cpu Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Floppy ( Floppy Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Ram ( Typ varchar(25), Ram Formfaktor varchar(25), Ram Storlek int, Ram Socket varchar(10), Ram Hastighet int, Ram Power(MHz) int )"; // Execute query mysql_query($sql,$con); // Create table mysql_select_db("my_db", $con); $sql = "CREATE TABLE Ovrigt ( Ovrigt Power(MHz) int )"; // Execute query mysql_query($sql,$con); mysql_close($con); ?>

Permalänk
Medlem

Jag kan tänka mig att felet ligger i att du inte använder dig utav följande tecken: `. Detta tecken ska du använda på alla kolumnnamn.
T.ex:

$sql = "CREATE TABLE Hdd ( `Hdd Formfaktor` varchar(25), `Hdd Power(MHz)` int, `Hdd rpm` int )";

Detta tecken ska inte blandas ihop med:'. ' används när man tilldelar kolumnerna värden.
T.ex:

$sql = "INSERT INTO Hdd (`Hdd Formfaktor`, `Hdd Power(MHz)`, `Hdd rpm`) VALUES ('SATA', '1200', '7200')";

Ser du skillnaden. `omringar kolumnnamn....' omringar värden i kolumnerna (Du får ursäkta om värdena i tabellen är helt off...är inte så bra koll på formfaktor och power för hårddiskar...men du förstår nog poängen iaf )

Men det jag inte förstår är varför du sitter och skapar allt det här i PHP-kod. Du säger du gör det för att du inte vill skapa tabellerna själv utan att skriptet ska göra det...men det är ju exakt det du gör just nu...skapar tabellerna för hand. Det hade varit en annan sak om du hade använt dig utav ett skript för att automatiskt lägga in värden i databasen...men men...det blir en bra övning för dig iaf =).

EDIT: Testade att köra in koden som jag skrev åt dig i en befintlig databas. Fungerar utan några problem.

Permalänk
Medlem
Skrivet av knuspaflex:

Jag kan tänka mig att felet ligger i att du inte använder dig utav följande tecken: `. Detta tecken ska du använda på alla kolumnnamn.
T.ex:

$sql = "CREATE TABLE Hdd ( `Hdd Formfaktor` varchar(25), `Hdd Power(MHz)` int, `Hdd rpm` int )";

Detta tecken ska inte blandas ihop med:'. ' används när man tilldelar kolumnerna värden.
T.ex:

$sql = "INSERT INTO Hdd (`Hdd Formfaktor`, `Hdd Power(MHz)`, `Hdd rpm`) VALUES ('SATA', '1200', '7200')";

Ser du skillnaden. `omringar kolumnnamn....' omringar värden i kolumnerna (Du får ursäkta om värdena i tabellen är helt off...är inte så bra koll på formfaktor och power för hårddiskar...men du förstår nog poängen iaf )

Men det jag inte förstår är varför du sitter och skapar allt det här i PHP-kod. Du säger du gör det för att du inte vill skapa tabellerna själv utan att skriptet ska göra det...men det är ju exakt det du gör just nu...skapar tabellerna för hand. Det hade varit en annan sak om du hade använt dig utav ett skript för att automatiskt lägga in värden i databasen...men men...det blir en bra övning för dig iaf =).

EDIT: Testade att köra in koden som jag skrev åt dig i en befintlig databas. Fungerar utan några problem.

TACKAR
DU ÄR UNDERBAR!