Variablen ausgeben
mars
- php
Hallo zusammen!
Ich hab erst vor kurzem mit PHP angefangen und stehe nun vor folgendem Problem:
Ich rufe aus einer Datenbank Informationen ab, das schein auch zu klappen. Wenn ich die Informationen später ausgeben will, passiert garnichts. Hier erstmal der Quellcode:
<?php
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("xyz", "xyz", "xyz");
if (!mysql_select_db ("xyz", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$abfrage = mysql_query("SELECT Id FROM benutzerdaten WHERE Id = '1'") or die('Es ist ein Fehler aufgetreten: '.mysql_error());
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_object($abfrage))
{
echo $row->id;
}
?>
Es erscheint einfach ein weißes Blatt, auch keine Fehlermeldung. Ich habe bereits gegoogelt, und auch hier gesucht, aber nichts hilfreiches gefunden. Ich will einfach nur etwas aus einer Datenbank abrufen und ausgeben.
MfG mars
Du wendest zwei mal mysql_query an, einmal übergibst du das Query, beim zweiten mal das Resultset aus dem vorherigen Query.
$result = mysql_query() und ein anschließendes while($row = mysql_fetch_object($result)) wäre richtig.
Beachte auch, dass mysql_fetch_object Case Sensitive ist. D. h. $row->Id ist nicht gleich $row->ID oder $row->id.
// Datenbankverbindung aufbauen
$connectionid = mysql_connect ("xyz", "xyz", "xyz");
Hier fehlt eine Fehlerprüfung.
if (!mysql_select_db ("xyz", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
Nein, er kann die Datenbank nicht finden. Die Verbindung wäre wenn, dann schon in der ersten Zeile fehlgeschlagen.
$abfrage = mysql_query("SELECT Id FROM benutzerdaten WHERE Id = '1'") or die('Es ist ein Fehler aufgetreten: '.mysql_error());
$ergebnis = mysql_query($abfrage);
while ($row = mysql_fetch_object($abfrage))
Es erscheint einfach ein weißes Blatt, auch keine Fehlermeldung.
Die Fehlermeldung befindet sich möglicherweise dort, wo sie hingehört: Im Fehlerprotokoll des Servers. Denn zumindest das zweite mysql_query(), dem du keinen SQL-Befehl, sondern das Ergebnis des ersten mysql_query()-Aufrufes übergibst, müsste sich beschweren.
Die Zeile '$ergebnis = mysql_query($abfrage);' kannst du ersatzlos streichen. Die Variable $abfrage solltest du in $ergebnis umbenennen, auch bei mysql_fetch_().
Davon abgesehen: Wenn Variablen im Spiel sind und die nicht das zu enthalten scheinen, was sie sollen, ist es immer hilfreich, den Code mit var_dump()-Aufrufen zu pflastern.
$ergebnis = mysql_query("SELECT Id FROM benutzerdaten WHERE Id = '1'") or die('Es ist ein Fehler aufgetreten: '.mysql_error());
var_dump($ergebnis);
while ($row = mysql_fetch_object($abfrage)) {
var_dump($row);
}
Weiterhin könntest du den Teil WHERE Id = '1' aus dem SQL-Befehl probehalber entfernen - wenn irgendwas in der Tabelle drin ist, muss die Schleife auch etwas ausgeben.