Vinzenz Mai: ausgabe einer function für mysql select

Beitrag lesen

Hallo Flo,

Ich hab mir gerade eine function gebastelt, die mir die Daten aus meiner Datenbank holen soll. Leider habe ich bei der Ausgabe noch einige Probleme. Hier mal kurz die funktion:

function select_ordered ($table, $order){
  db_connect ();
  $query = "SELECT * FROM $table ORDER BY $order";

Nein, es ist keine gute Idee, _alle_ Spalten einer Tabelle auszulesen, erst recht nicht in der Kombination mit allen Datensätzen.

$rows = @mysql_query("$query");

Dazu sag' ich nichts. Halt doch:
Deiner Variablenbenennung zufolge glaubst Du, Du erhältst alle Zeilen zurück. In einem gewissen Sinne stimmt das auch. Du erhältst eine Ressource, die Dir den zeilenweisen Zugriff auf die Daten erlaubt.

if (mysql_error()){
   return mysql_error();
  }else{
   $result = mysql_fetch_array($rows);

und hier solltest Du stattdessen mit einer Schleife Zeile für Zeile auslesen, wie es auch im Handbuch steht.

return $result;
  }
}

Bei nur einem Datensatz habe ich keine Probleme.

Äh ja, Du liest ja auch nur einen Datensatz aus :-)
Und berücksichtigst noch nicht einmal den Fall, dass eine Tabelle noch leer ist, dass also _keine_ Daten zurückgeliefert werden.

Nein, dann gibt es keinen mysql_error, das ist bei einer leeren Tabelle normal und richtig, wird aber von Dir nicht berücksichtigt.

Freundliche Grüße

Vinzenz