Google weiß alles: mysqli_result

Beitrag lesen

Hallo,

ich möchte gerade von mysql zu mysqli umstellen.

Bei folgender Funktion habe ich ein problem, da es wohl mysqli_result nicht gibt. Wie kann ich denn die Daten einfach ausgeben lassen.

$q = "SELECT * FROM `artikel` WHERE id='$id' ";
$res = mysql_query($q);
$text = mysql_result($res,0,'text');

neu aber mit Fehler:

Versuchen wird das mal richtig:

Deine Tabelle habe ein Feld "id" und eines "name". Dieses solltest Du auch angeben, denn sonst

  • ist das Erfebnis "Zufall"
  • die Ergebnismenge größer als nötig.
$q = 'SELECT `name` FROM artikel WHERE `id`=' . intval($id); # Nur sicher ist sicher!
if ($res = mysql_query($q) {
   if  mysqli_num_rows($res) == 0) {
       // Hier ist was zu tun, wenn die Abfrage ein leeres (kein) Ergebnis liefert?
   } else if ( mysqli_num_rows($res) == 1 ) {
       $row = mysqli_fetch_assoc($res);
       $text = $row['name']; ## Dein Ergebnis
   } else {
      // Hier ist was zu tun, wenn die Abfrage unvermutet mehrere Ergebnisse liefert?
   }
} else {
    // Hier ist was zu tun, wenn MySQL einen Fehler meldet?
    // siehe: http://php.net/manual/de/mysqli.error.php
}

Daneben fällt mir noch auf. dass die Abfrage "eher ungewöhlich" ist. Meist fallen diese komplexer aus. Frage deshalb: Hast Du mehrere Abfragen und verwendest Du womöglich das Ergebnis dieser Abfrage als Bestandteil weiterer Abfragen, vor allem in der where-Klausel?