dedlfix: Datenbaank/PHP Tabellen zeichnen

Beitrag lesen

Tach!

Ein paar Korrekturen und Anmerkungen.

$sql = mysql_query("SELECT * FROM products LIMIT 6");
wäre von der Syntax her richtig, ist aber fachlich immer noch falsch, weil Du etwas wie

$sql="
SELECT id, product\_name, price
FROM products
LIMIT 6
";
$result = mysql_query("SELECT*FROM products LIMIT 6");

Das sollte eigentlich ein

$result = mysql_query($sql);

werden.

$productCount = mysql_num_rows($result);
  if ($productCount>0){
    while($row = mysql_fetch_array($result)) {
      $details=$row["details"];
      # was auch immer noch
    }
  }

In dem Fall ist mysql_num_rows() und das if überflüssig, weil while alleine schon gar nicht loslaufen kann, wenn keine Ergebnismenge vorliegt, denn dann kommt gleich beim ersten Aufruf von mysql_fetch_array() ein false zurück.

Anders wäre es, wenn der Fall der leeren Menge anders behandelt werden soll, denn dann könnte der in den else-Zweig. Allerdings kann man das meist auch anhand der leeren Datenmenge feststellen, die man in der whileschleife zu erzeugen gedenkt - also zum Beispiel wenn man da ein (davor initialisiertes) Array mit den Datensätzen füllt.

Weiterhin wäre mysql_fetch_assoc() unter Umständen besser, nämlich dann, wenn man die Werte nicht doppelt braucht, also einmal mit numerischem Key, und dann nochmal mit dem Spalten-/Aliasnamen. Alternativ kann man mysql_fetch_array() mit MYSQL_ASSOC als zweitem Parameter aufrufen.

Und was noch viel besser wäre: Für offensichtlich neue Projekte zukunftssichere Techniken empfehlen, nicht Beispiele mit Funktionen geben, die schon abgekündigt sind (auch wenn sie uns noch eine ganze Weile erhalten bleiben). Also mysqli oder PDO statt der mysql_*()-Funktionen verwenden.

dedlfix.