Avatar billede boxerfjaes Nybegynder
01. maj 2009 - 18:01 Der er 4 kommentarer og
1 løsning

Undgå tomme tabel rækker?

Hej!
Jeg har fået problemmer med følgende while-sætning.
Problemet er at der udskrives 9 rækker i tabellen uanset hvad. Jeg vil gerne udgå at der udskrives tomme rækker i tabellen


$offset = 0;
while($offset < 9)
{
    $query = mysql_query("SELECT * FROM db WHERE id = $id && age > 23 ORDER BY $order LIMIT $offset, 1");
    $row = mysql_fetch_assoc($query);
    echo "<tr><th><img src=\"/userg/".$row['nation'].".gif\" alt=\"Flag\"></th>
    <th><a href=\"".$row['id']."\.php\">".$row['firstname'] . " " . $row['lastname'] ."</a></th>
    <th>".$row['age']."</th>
    <th>".$row['sex']."</th>
    <th>".$row['addr']."</th>
    <th>".$row['post']."</th>
    <th>".$row['tlf']."</th>
    <th>".$row['qplmu']."</th></tr>";
    $offset++;
}
Avatar billede webweaver Praktikant
01. maj 2009 - 18:11 #1
Hvordan kan du have tomme rækker i tabellen?
Er det profildata, som er frivilligt om man vil udfylde eller ej?

Den smider vel ikke tomme rækker ud?
&& age > 23. Så hvis age er tomt, burde der ikke komme noget ud.
Avatar billede acore Ekspert
01. maj 2009 - 18:19 #2
Probblemet er ikke, at der er tomme rækker i tabellen. Problemet er, at du altid kører 9 forespørgsler og skriver ud fra hver og en.

Prøv i stedet:

$offset = 9;
$query = mysql_query("SELECT * FROM db WHERE id = $id && age > 23 ORDER BY $order LIMIT $offset");
while($row = mysql_fetch_assoc($query))
{
    echo "<tr><th><img src=\"/userg/".$row['nation'].".gif\" alt=\"Flag\"></th>
    <th><a href=\"".$row['id']."\.php\">".$row['firstname'] . " " . $row['lastname'] ."</a></th>
    <th>".$row['age']."</th>
    <th>".$row['sex']."</th>
    <th>".$row['addr']."</th>
    <th>".$row['post']."</th>
    <th>".$row['tlf']."</th>
    <th>".$row['qplmu']."</th></tr>";
    $offset++;
}

Den er vist også mere optimal i øvrigt.
Avatar billede acore Ekspert
01. maj 2009 - 18:20 #3
Ups:

$offset++;

i næstsidste linie bør slettes (men betyder mindre).
Avatar billede boxerfjaes Nybegynder
01. maj 2009 - 19:11 #4
Det virker perfekt!
Mange tak.
Smider du et svar
Avatar billede acore Ekspert
01. maj 2009 - 20:53 #5
Det var godt :)
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