• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

mysql_fetch_array() Fehler

J

j-l-n

Guest
Ein mysql_fetch_array()-Fehler tritt in folgendem Skript auf:
PHP:
<?php

$con = mysql_connect('Benutzer & Passwort usw.');

if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("chat", $con);

$result = mysql_query("SELECT * FROM message ORDER BY id DESC");


while($row = mysql_fetch_array($result))
  {
  echo '<p>'.'<span>'.$row['sender'].'</span>'. '  ' . $row['message'].'</p>';
  }

mysql_close($con);
?>

Was ist hier falsch? Die Datenbankverbindung klappt, d.h. Passwort usw. ist alles richtig. Wodurch wird dann der Fehler ausgelöst?
 
Zuletzt bearbeitet:
Das bedeutet, dass dein SQL-Statement irgendwie falsch ist. (mySQL-Fehler kannst du mit PHP: mysql_error - Manual auslesen)
mysql_query kann einfach verschiedene Typen zurückgeben: PHP: mysql_query - Manual

PS: wie im anderen Thread schon erwähnt. Wenn du das neu lernst, nimm bitte PDO. Das ist sicherer und wird auch zukünftig unterstützt bleiben.
 
Wir können dir nicht sagen, was an deinem SQL-Statement falsch ist, da wir deine Datenbankstruktur nicht kennen.
Was gibt dir denn jetzt mysql_error() aus?
 
Problem hat sich erübrigt, ich habe das Projekt jetzt komplett zu einer Version ohne MySQL umgebaut. Danke trotzdem an alle, die versucht haben, mir zu helfen! :)
 
@Julian

ob es wirklich Sinn der Sache ist, bei einem Problem einfach nen anderen Weg zu gehen anstatt das Problem zu lösen?

versuch mal
PHP:
$con = mysql_connect("localhost","nutzername","pass");

if(!$con){die('Could not connect: '.mysql_error());}

mysql_select_db("chat");

$sql = mysql_query("SELECT * FROM message ORDER BY id DESC");
while($row = mysql_fetch_assoc($sql,MYSQL_ASSOC)){


         echo '<p>'.'<span>'.$row['sender'].'</span>'. '  ' . $row['message'].'</p>';
}
 
@dertypdernixkan: da die Fehlermeldung bei mysql_fetch_assoc geworfen wurde, gehe ich mal davon aus, dass beim myql_query der mySQL-Fehler liegt, deswegen müsste die Variable $sql getestet werden:
PHP:
$sql = mysql_query("SELECT * FROM message ORDER BY id DESC");
if ($sqp === false){
	die("mySQL error: " . mysql_error());
}
 
Zuletzt bearbeitet:
@kkapsner

Stimmt, ich hätte die Fehlerausgabe einbauen können. Ich Denke das Problem aber sofort gesehen zu haben da ich mich damit auch schon mal rumschlug...

Der Code:
PHP:
$result = mysql_query("SELECT * FROM message ORDER BY id DESC"); 


while($row = mysql_fetch_array($result))

wird folgenden Fehler ausgeben: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

da die Fehlermeldung bei mysql_fetch_assoc geworfen wurde

Computer sagt "mysql_fetch_array-fehler" :D
 
Zuletzt bearbeitet:
wird folgenden Fehler ausgeben: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

Computer sagt "mysql_fetch_array-fehler" :D

Richtig, das gleiche kam bei mir auch immer. Ich muss mal schauen, ob ich das Skript, um das es geht, wieder finde. Nachdem das nämlich nicht geklappt hat, hatte ich es - glaub ich - gelöscht :(
 
Nochmal: der Fehler liegt nicht beim mysql_fetch_array(), sondern beim mysql_query(). Der Fehler wird zwar bei letzterem geworfen, aber nur weil der Rückgabewert von Ersterem nicht geprüft wird.
 
Zurück
Oben