Frage von Bloodnighetr, 42

Notice: Array to string conversion in C:\xampp\htdocs\Privat\index.php on line 81 Array?

Kann mir bitte jemand helfen und eventuell eine Lösung für das Problem sagen?

Antwort
von Spirit528, 22

Es weder ein Error noch ein Warning, sondern nur eine Notice.

Dennoch sollte man es korrigieren: mysqli_fetch_array liefert ja ein Array zurück, doch Du gibst es mit echo($ErsterTag) den Rückgabewert, den Du in $ErsterTag zwischenspeichertest, als Zeichenkette aus. Die Notice bekommst Du weg mit echo($ErsterTag[0]) jedoch solltest Du vorher überprüfen, ob es ein Array mit mindestens einem Element ist oder ansonsten eine entsprechende Meldung ausgeben, dass kein Datensatz gefunden wurde.

echo (is_array($ErsterTag) && sizeof($ErsterTag)>0) ? $ErsterTag[0] : "kein Eintrag gefunden");
Antwort
von Elmo2999, 19

mysql_fetch_array() gibt ein Array zurück. Das kann man nicht mit echo ausgeben. Du kannst dazu

print_r($ErsterTag);

benutzen um das Array zu parsen und dann den Index benutzen:



echo $ErsterTag[0];

Mit mysql_fetch_assoc() bekommst du assoziative Arrays, also die Indizes heißen wie die Tabellenfeldnamen.

Bedenke auch, dass mehrere Ergebnisse in einer Schleife gelesen werden sollten.


Und als letztes: Nutz PDO! Die alten mysql-Funktionen sind sowas von alt und gammelig. Es gibt keine prepared Statements (Gefahr von Injections), sie sind deprecated as hell (gibts vielleicht irgendwann nicht mehr) und PDO ist genrell für jegliche DMBS nutzbar und objekt orientiert.

Kommentar von Elmo2999 ,

Ich sehe gerade, mysqli ist ok. Hab das i übersehen. PDO ist aber dennoch cooler.

Kommentar von Kiboman ,

print_r oder für noch mehr infos

var_dump

den rest der Antwort kann man wohl weg lassen ;)

assoc liefert kein int als index da bringt dor [0] garnichts

in seinem code bekommt er nur einen row also schleife auch überfallig

mysqli selbst gemerkt,ok

Kommentar von Elmo2999 ,


Mit mysql_fetch_assoc() bekommst du assoziative Arrays, also die Indizes heißen wie die Tabellenfeldnamen.


Bedenke auch, dass mehrere Ergebnisse in einer Schleife gelesen werden sollten.


Bis auf var_dump kann man den Kommtar von Kommissar Redundanto weglassen.

Antwort
von LeBonyt, 21

Du kannst ein Array nicht mit der function echo ausgeben.

Da es sich um eine Notice handelt, ist das eben nicht fatal.

http://php.net/manual/de/function.print-r.php wäre eine Alternative

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten