Avatar billede Asger Carlsen Nybegynder
03. september 2007 - 19:48 Der er 5 kommentarer og
1 løsning

"tom" eller "fyldt" udtræk i php

Jeg har et stykke kode, hvor jeg skal teste om det udtræk jeg vil lave fra min database er gyldigt. Altså om der findes noget i tabellen med det id der er givet. Har forsøgt mig med denne kode, som næsten virker. Nogen der kan se hvorfor det ikke vil skrive "not set", men gerne skriver "set"?


$hent_test = mysql_query("SELECT * from ti_brand_logo WHERE brand_id ='$id'");
        while ($hent_test2 = mysql_fetch_Array($hent_test))
        {
          extract($hent_test2);
        if($hent_test2 == NULL) {
            echo"not set";
        } else {
            echo"set";
        }
    }

/ Carl
Avatar billede arne_v Ekspert
03. september 2007 - 19:50 #1
Hvis $hent_test2 er NULL kommer du ikke ind i while løkken.
Avatar billede Asger Carlsen Nybegynder
03. september 2007 - 19:54 #2
Okay, men hvis jeg fjerner while løkken, så skriver den "not set" ved alle, hvilket jeg er sikker på er forkert. På den måde som koden er skrevet her, udskrives "set" de rigtige steder. Ved du hvordan det lader sig gøre?
Avatar billede pidgeot Nybegynder
03. september 2007 - 19:58 #3
mysql_fetch_array returnerer i øvrigt false når der ikke er data, fremfor NULL - det har dog samme effekt da du ikke foretager en "strict" sammenligning, du kommer ikke ind i while-løkken.

Den korrekte måde er snarere:

$hent_test = mysql_query("SELECT * from ti_brand_logo WHERE brand_id ='$id'");
if ($hent_test2 = mysql_fetch_Array($hent_test))
{
  extract($hent_test2);
  echo"set";
} else {
  echo"not set";
}

eller lidt pænere, synes jeg selv:

$hent_test = mysql_query("SELECT * from ti_brand_logo WHERE brand_id ='$id'");
if (mysql_num_rows($hent_test)!=0) {
  while($hent_test2 = mysql_fetch_Array($hent_test)) {
    extract($hent_test2);
  }
  echo"set";
} else {
  echo"not set";
}
Avatar billede Asger Carlsen Nybegynder
03. september 2007 - 19:59 #4
om ikke andet svarede du på mit spørgsmål, så smid et svar hvis du vil have point.
Avatar billede Asger Carlsen Nybegynder
03. september 2007 - 20:02 #5
pidgeot /> Det var lige det jeg var på jagt efter, smid et svar så får du point.
Avatar billede pidgeot Nybegynder
03. september 2007 - 20:03 #6
Værsgo. :)
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
Computerworld tilbyder specialiserede kurser i database-management

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