Frage von klugshicer, 32

Ergebnis von mysqli_query()

Was ist das Ergebnis von: $results = $mysqli->query(SELECT max(MenuIndex) FROM `content WHERE MenuID = 1;);? Ist das Ergebnis ein einzelner Wert oder ein Array und wie komme ich in PHP an den zurückgegebnen Wert?

Antwort
von mastema666, 31

In diesem Fall sollte das Ergebnis ein einzelner Wert sein, denn mit "max(spalte)" fragt man nur den höchsten Wert in dieser Spalte ab, welcher der WHERE Bedingung entspricht.

An den Wert kämst du dann z.B. so:

$val = $results->fetch_object()->MenuIndex;
Kommentar von klugshicer ,

Vielen Dank - aber das hat leider nicht funktioniert.

Nach stundenlangem herumprobieren habe ich eine andere Lösung gefunden (die Funktion max() scheint mit mysqli nicht mehr zu funktionieren)

Für den Fall dass es noch jemand braucht:

$sql = "SELECT MenuIndex FROM `content` WHERE MenuID = 1 ORDER BY MENUINDEX DESC LIMIT 1;";
$results = $mysqli->query($sql)
if ( $results->num_rows == 1 )
{
while($row = $results->fetch_assoc())
{
$maxindex = intval($row['MenuIndex']);
}
$results->free();
}
Kommentar von mastema666 ,

Also wo genau bei deinem Query nun das Problem war kann ich leider auch nicht sagen, aber die "MAX" Funktion gibt es in MySQL sehr wohl noch: http://dev.mysql.com/doc/refman/5.7/en/example-maximum-column.html (Hab ich auch grad mal kurz getestet um sicher zu gehen, funktioniert).

Das hat mit mysqli auch nichts zu tun, mysqli ist ja nur der Weg, über den man auf MySQL zugreift, die Befehle / Funktionen von MySQL selbst unterscheiden sich nicht, egal ob man mysqli benutzt oder PDO oder gar die veralteten mysql_* Funktionen.

Ansonsten macht mein Beispiel so ziemlich genau das gleiche wie deine Lösung, nur halt kürzer (while/foreach z.B. braucht man nur bei mehr als einem Ergebnis, ich bin da halt davon ausgegangen, dass die Abfrage sicher nur ein Ergebnis haben kann, was hier aber ja auch der Fall ist) und mit Objekt statt Array (das ist aber reine Geschmackssache, ich bin halt faul und $bla->blubb ist schneller getippt als $bla['blubb'] ;) ). Aber macht ja nichts, deine Lösung ist ja nicht falsch, imho nur etwas umständlich.

Kommentar von klugshicer ,

max(MenuIndex) lieferte bei mir kein verwertbares Ergebnis zurück. 

Antwort
von triopasi, 29

Zb mit mysqli_fetch_assoc().

Geh auf die Referenz und such nach "mysqli_"...

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten