Avatar billede lbpe Nybegynder
09. august 2003 - 16:19 Der er 6 kommentarer

Opret db-tabel udfra variabel

Hej!

Jeg ønsker at oprette en db-tabel med et navn som brugeren kan bestemme. Altså noget a'la det her:

mysql_query("
    CREATE TABLE $db_table_name (
      nr    int(6) NOT NULL DEFAULT '',
      plus  tinytext  NOT NULL DEFAULT '',
      pris  int(8) NOT NULL DEFAULT '',
    ) type=MyISAM;"
) OR DIE("System Error");

Men det virker ikke. Nogen der ved, om det overhovedet er muligt at gøre dette?
Avatar billede erikjacobsen Ekspert
09. august 2003 - 16:28 #1
mysql_query("
    CREATE TABLE $db_table_name (
      nr    int(6) NOT NULL DEFAULT ,
      plus  tinytext  NOT NULL DEFAULT ,
      pris  int(8) NOT NULL DEFAULT
    ) type=MyISAM;"
) OR DIE("System Error");

Men det er en dum databasestruktur, hvis det skulle være nødvendigt at
oprette nye tabeller.
Avatar billede erikjacobsen Ekspert
09. august 2003 - 16:30 #2
Eller rettere (nu jeg læser hvad der står)

mysql_query("
    CREATE TABLE $db_table_name (
      nr    int(6) NOT NULL DEFAULT '',
      plus  tinytext  NOT NULL DEFAULT '',
      pris  int(8) NOT NULL DEFAULT ''
    ) type=MyISAM;"
) OR DIE("System Error: ".mysql_error());
Avatar billede lbpe Nybegynder
09. august 2003 - 17:20 #3
Jeg får følgende fejl når jeg bruger den sidste stump kode du skrev:
System Error: 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 '123 ( nr int(6) NOT NULL DEFAULT '', plus tinyt

(har sat $db_tabel_name = "123"). Hvorfor er det en dum struktur, hvis jeg skal have flere tabeller?
Avatar billede erikjacobsen Ekspert
09. august 2003 - 17:31 #4
Et tabelnavn kan ikke begynde med et ciffer. Prøv du bare at få det her til
at virke, og tag så et kursus i databasedesign ;)
Avatar billede lbpe Nybegynder
09. august 2003 - 18:04 #5
Hmm, var ikke klar over, at tabeller ikke må starte med et ciffer. Essensen i strukturen er, at tabelnavnet skal virke som en fremmednøgle for en mastertabel - derfor den måske lidt mærkelige struktur. Oprindeligt brugte jeg time-funktionen til at generere navnet, hvilket jo åbenbart ikke var så heldigt :(
Takker for hjælpen
Avatar billede erikjacobsen Ekspert
09. august 2003 - 18:10 #6
En fremmednøgle peger på en primærnøgle i en anden tabel, og det er meget
bedre at gøre det sådan.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester