Avatar billede ducks Nybegynder
02. januar 2004 - 02:59 Der er 9 kommentarer og
1 løsning

Simpelt - Oprettelse af tables

2 simple spørgsmål:

1. Er det rigtigt lavet, sådan som jeg har lavet det nu med . for at slutte en $string sammen med en tekst?
2. Er det nødvendigt at sætte varchar(50) og int(8), kan man ikke bare sætte dem til uendelig på en eller anden måde og vil det køre dårligt hvis det ikke er nødvendigt?

$tableSQL = "create table $tblname . _posts(name varchar(50), post int(8))";
mysql_query($insertSQL);
Avatar billede nak-m Nybegynder
02. januar 2004 - 03:17 #1
måske sådan:

$tblname = $tblname."_posts";
$tableSQL = "CREATE TABLE $tblname (name varchar(50), post int(8))";
mysql_query($tableSQL);

ved ikke helt om det er muligt at skrive:

$tableSQL = "CREATE TABLE $tblname.'_posts' (name varchar(50), post int(8))";
mysql_query($tableSQL);
Avatar billede jakoba Nybegynder
02. januar 2004 - 03:22 #2
Nej.  se http://www.mysql.com/doc/en/CREATE_TABLE.html

det kunne være:
$tableSQL = "create table $tblname (name varchar(50), post int(8))";

det er en lovlig sql kommando, men den tabel det laver er en sylle en, der måske ikke kan bruges sådan som du ønsker.
jeg ville foretrække:
$tableSQL = "
    create table $tblname (
    id int(9) not null auto increment primary key,
    name varchar(50),
    post int(8))
";
mysql_query(tableSQL);  // tabellen oprettes først når den sql_kommando udføres

den ekstra colonne 'id' sørger for at alle rækker i den tabel indeholder noget forskelligt. det er et krav i mysql tabeller. desuden er det nyttigt at bruge til at finde ud af hvad der blev indsat først

mvh JakobA
Avatar billede ducks Nybegynder
02. januar 2004 - 03:30 #3
Men hvad betyder int(9) at den max kan være 9 cifre? Hvorfor ikke bare uendelig?
Avatar billede nak-m Nybegynder
02. januar 2004 - 03:31 #4
Han mente vidst (glemte dollar-tegn):

$tableSQL = "
    create table $tblname (
    id int(9) not null auto increment primary key,
    name varchar(50),
    post int(8))
";
mysql_query($tableSQL);
Avatar billede nak-m Nybegynder
02. januar 2004 - 03:43 #5
Du kommer jo alligevel langtfra til at bruge 9 cifre ... med mindre du bruger næsten en milliard rækker ;)
Avatar billede ducks Nybegynder
02. januar 2004 - 03:57 #6
Men hvad nu hvis varchar skal være uendeligt? skal jeg så skrive 9999999999 eller kan je nøjes med *?
Avatar billede ducks Nybegynder
02. januar 2004 - 04:16 #7
Der er noget galt med id int(9) not null auto increment primary key
Avatar billede ducks Nybegynder
02. januar 2004 - 04:20 #8
Den laver ikke nogen table hvis den linie er med ihvertfald
Avatar billede nak-m Nybegynder
02. januar 2004 - 05:02 #9
$tableSQL = "
    create table $tblname (
    id mediumint unsigned not null auto_increment,
    name varchar(50),
    post int(8),
    primary key (id))
";
mysql_query($tableSQL);

Prøv dette :)
Avatar billede jakoba Nybegynder
02. januar 2004 - 15:54 #10
>> ducks
  en varchar kan ikke være uendelig. højest 255. hvis du vil have flere bogstaver i må du bruge en text eller blob type: http://www.mysql.com/doc/en/BLOB.html

men som regel er det en skidt ide at gemme hele filer i en database. det er nemmere og hurtigere at gemme filen som fil og så blot gennem filstien i databasen.
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