Avatar billede learner Praktikant
25. august 2005 - 16:23 Der er 12 kommentarer og
1 løsning

Har brug for at tjekke om et field findes i en table

Hej, jeg hr fundet
SHOW FIELDS FROM
og jeg tror det er hvad jeg leder efter, men jeg er ikke sikker.

Jeg har brug for at undersøge om field eksisterer i table og hvis ikke, så skal den creates

if (felt_ikke_findes){
  mysql_query("ALTER TABLE $table ADD $bla varchar(50)")or die()
}

Nogen der vil hjælpe mig med det :o)
Avatar billede fixxxer Nybegynder
25. august 2005 - 16:59 #1
Det hedder SHOW COLUMNS:

SHOW COLUMNS FROM din_tabel LIKE 'dit_felt'
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:00 #2
dog kan man også bruge FIELDS
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:00 #3
Avatar billede learner Praktikant
25. august 2005 - 17:08 #4
Tak :o)
Hvordan bruger jeg den i mit tilfælde?

$Query = mysql_query("SHOW COLUMNS FROM din_tabel LIKE 'dit_felt'")
og hvad så her?
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:15 #5
if (mysql_num_rows($Query))
/* feltet findes */
Avatar billede learner Praktikant
25. august 2005 - 17:18 #6
Takker :o)
Avatar billede learner Praktikant
25. august 2005 - 17:21 #7
if (mysql_num_rows($Query)==0)
/* feltet findes ikke */
korrekt?
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:24 #8
Næh, der ville jeg bruge

if (!mysql_num_rows($Query))

eller
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:24 #9
Ikke noget eller :)
Avatar billede fixxxer Nybegynder
25. august 2005 - 17:25 #10
Udover at nul er af typen integer, er det også et udtryk for false, så i andre udtryk er 0 ikke nødvendigvis lig med at der ikke er noget resultat.
Avatar billede learner Praktikant
25. august 2005 - 19:42 #11
Spændende, så har jeg muligvis mange steder hvor jeg skal rette, for jeg plejer bruge if (mysql_num_rows()==0)
Må vist hellere oprette et nyt spm om det. For jeg forstår ik helt det, du skriver i din forklaring.

Men mange tak for hjælpen. :o)
Avatar billede fixxxer Nybegynder
25. august 2005 - 23:57 #12
Læs lidt omkring booleans, hvilket er en væsentlig humle i scripting og programmering:
http://dk.php.net/manual/en/language.types.boolean.php

og måden man tester får et boolean resultat:
http://dk.php.net/manual/en/language.operators.comparison.php



I det første link kan du også læse:
// this is not necessary...
if ($show_separators == TRUE) {
  echo "<hr>\n";
}

// ...because you can simply type
if ($show_separators) {
  echo "<hr>\n";
}


Samme gæler derfor:

if ($dont == 0)
{

}

/* kortere udgave af samme */

if (!$dont)
{

}


Dog hvis 0 rent faktisk er noget vi vil reagere på, og vi derfor snakker om tal og ikke en boolean:

if ($dont === 0)
{
/* do alligvel */
}
Avatar billede learner Praktikant
26. august 2005 - 15:15 #13
takker :o)
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