Nikki: Tabellen wiederholen sich nicht

Hallo leute, ich bin leider kein php crack.
Ich habe folgenes vor und zwar das mir User angezeigt werden, die in einer DB gespeichert sind. Das ganze sollte in einer Tabellenform passieren und alphabetisch sortiert werden. Mein Code sieht so aus:

<?

$res = mysql_query ("SELECT id FROM $table");
$num = mysql_num_rows($res)-2;
$counter = 1;
$gewuenschte_spaltenanzahl = 4;

//User A
$sql_a = ("SELECT name, vorname, id FROM $table WHERE level !=99 and vorname LIKE 'a%' order by vorname");
$result_a = mysql_query($sql_a);

while($cider_a = mysql_fetch_assoc($result_a)){
$mysql_ergbnis_user_array_a[] = $cider_a["vorname"]." ".$cider_a["name"];
$nid_a[] = $cider_a["id"];
};

echo "<table><tr>";
while($counter <= $num){
    echo "<td width=150> <a href=user_visit.php?sid=$sid&uid=$uid&nid=".$nid_a[$counter-1].">".$mysql_ergbnis_user_array_a[$counter-1]."</a><br><br></td>";
    if($counter % $gewuenschte_spaltenanzahl == 0){
        echo "</tr><tr>" ;
    }
    $counter++;
}
echo "</tr></table><br><br>";

//User B
$sql_b = ("SELECT name, vorname, id FROM $table WHERE level !=99 and vorname LIKE 'b%' order by vorname");
$result_b = mysql_query($sql_b);

while($cider_b = mysql_fetch_assoc($result_b)){
$mysql_ergbnis_user_array_b[] = $cider_b["vorname"]." ".$cider_b["name"];
$nid_b[] = $cider_b["id"];
};

echo "<table><tr>";
while($counter <= $num){
    echo "<td width=150> <a href=user_visit.php?sid=$sid&uid=$uid&nid=".$nid_b[$counter-1].">".$mysql_ergbnis_user_array_b[$counter-1]."</a><br><br></td>";
    if($counter % $gewuenschte_spaltenanzahl == 0){
        echo "</tr><tr>" ;
    }
    $counter++;
}
echo "</tr></table>";
?>

Aber leider zeigt es mir nur die User mit A an was ist falsch?

  1. //User A
    $sql_a = ("SELECT name, vorname, id FROM $table WHERE level !=99 and vorname LIKE 'a%' order by vorname");

    ^^^^^^^^^^^^^^^^^^^^^

    vielleicht, weil du nur die mit "a" aus der datenbank holst?

  2. Hi,

    $res = mysql_query ("SELECT id FROM $table");
    $num = mysql_num_rows($res)-2;

    $num ist also die Gesamtzahl der Einträge in $table - 2.

    $counter = 1;
    $sql_a = ("SELECT name, vorname, id FROM $table WHERE level !=99 and vorname LIKE 'a%' order by vorname");

    Hier holst Du einen kleinen Teil der Einträge aus der Tabelle.

    while($counter <= $num){

    Deine Schleife läuft aber von 1 bis zur Gesamtzahl der Einträge - 2.
    Warum auch immer. Logisch wäre, wenn sie über die Anzahl der Einträge mit level != 99 und Vorname like 'a%' laufen würde, nicht über alle.

    $counter++;
    }

    $counter ist jetzt um 1 niedriger als die Gesamtzahl der Einträge in der Tabelle (oder auch: 1 höher als $num, da $num ja die Gesamtzahl - 2 ist).

    $sql_b = ("SELECT name, vorname, id FROM $table WHERE level !=99 and vorname LIKE 'b%' order by vorname");

    Hier wird wieder ein kleiner Teil der Einträge geholt.

    while($counter <= $num){

    Diese Schleife wird logischerweise niemals betreten, da $counter hier ja bereits > $num ist.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.