03. september 2007 - 19:48Der 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"; } }
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?
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"; }
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.