Vimes: select problem

Beitrag lesen

Hallo,

Dein Problem ist folgendes:

$auswahl = mysql_query ("SELECT rubrik FROM kunden WHERE rubrik LIKE '%$rubrik1%'");

du wählst also nur die Spalte rubrik aus.

$daten = mysql_fetch_array($auswahl);
$zahl = mysql_num_rows($auswahl);

das funktioniert.

echo "$zahl Datensätzte.";

das haut er dir mitten in deine Tabellenstruktur (was der Browser damit macht, ist Glückssache)

$i=0;
$j=0;
while ($zahl>$i && $j<20)

{ while($row = mysql_fetch_array($auswahl))

hier geht dein erster gefundenener Datensatz verloren. Der steht nämlich schon in $daten.

Deine Daten sollen wohl in Tabellenzeilen, die musst du aber in <tr>...</tr>  einschließen.

{ echo "<td>";
     echo $row['idk'];
     echo "</td><td>";
     echo $row['name'];
     echo "</td><td>";
     echo $row['vorname'];
     echo "</td><td>";
     echo $row['firma'];
     echo "</td><td>";
     echo $row['str'];
     echo "</td><td>";
     echo $row['hnr'];
     echo "</td><td>";
     echo $row['ort'];
     echo "</td><td>";
     echo $row['plz'];
     echo "</td>";
  }

Diese ganzen Spalten kennt er nicht, da sie nicht mit SELECTiert wurden!

btw.  die echos kannst du auch in eine Zeile schreiben.

++$i;
  ++$j;

Wozu brauchst du zwei Zähler? in $i und $j steht ja immer das gleiche!

}
echo "</table>;
}

Scheinbar möchtest du nur max 20 Datensätze ausgeben. Dann hol dir doch einfach nur soviele aus der DB  mit LIMIT 0,20 , d.h. ab dem ersten Datensatz (index 0) 20 Datensätze suchen

ALSO

auswahl = mysql_query ("SELECT * FROM kunden WHERE rubrik LIKE '%$rubrik1%' LIMIT 0,20");

$zahl = mysql_num_rows($auswahl);

{ while($row = mysql_fetch_array($auswahl))
   echo "<tr><td>";
    echo $row['idk'];
    echo "</td><td>";
    echo $row['name'];
    echo "</td><td>";
    echo $row['vorname'];
    echo "</td><td>";
    echo $row['firma'];
    echo "</td><td>";
    echo $row['str'];
    echo "</td><td>";
    echo $row['hnr'];
    echo "</td><td>";
    echo $row['ort'];
    echo "</td><td>";
    echo $row['plz'];
    echo "</td></td>";
 }
echo "</table>;

das mit den echos (s.o) hab ich nicht geändert.

Dein erstes SELECT kannst du dir auch sparen, da du die Spaltennamen auch bei der zweiten Abfrage mitbekommst.

Schönen Gruß aus HH