Frage von TheMusicBoy, 53

PHP / MySQL gibt nur "Array" aus?

Hey,

ich versuche gerade zum Spaß eine Website aufzubauen, und habe vor eine Bildergalerie einzufügen. Man soll bei dieser immer ein Bild sehen können, und per Button zum nächsten gelangen. Das klappt soweit auch. Nun will ich noch überprüfen ob das Aktuelle Bild schon das letzte ist, und benutze dazu diese Funktion:

function getHighestId() {
    $stmt = self::$_db->prepare("SELECT image_Id FROM gallery ORDER BY image_Id DESC LIMIT 0, 1");
    $stmt->execute();
    
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

Der Rückgabewert wird in einer Variable gespeichert, aber am ende gibt diese Variable nur "Array" aus. Was ist der Fehler?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von derFloh, 15

Dein Problem ist zwar schon gelöst, aber ich hab noch einen kleinen Kommentar:

Statt

SELECT image_Id FROM gallery ORDER BY image_Id DESC LIMIT 0, 1

ist es (imho) wesentlich lesbarer, wenn du

SELECT max(image_Id) FROM gallery

benutzt

Antwort
von weblumpy, 30

Wenn du nur die höchste image_Id als Rückgabewert möchtest:

return $stmt->fetchAll(PDO::FETCH_ASSOC)[0]['image_Id'];
Kommentar von TheMusicBoy ,

Danke, mein Problem ist gelöst ^^

Antwort
von maximilianus7, 30

der fehler ist, dass du die nicht die beschreibung von fetchall angeschaut hast. du kennst google?

die ausgabe stammt wohl vom echo. versuch das mal mit print_r auszugeben.

Kommentar von TheMusicBoy ,

Geändert hat sich was. Es wird nun "Array ( [0] => Array ( [image_Id] => 3 ) )" ausgegeben. Aber das ist keine Zahl die ich mit einer Anderen vergeleichen kann. Ich brauche lediglich die image_Id

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten