Anfängerproblem Datenbank
detlevk
- php
0 Bademeister0 paierlep0 detlevk
1 Frank (no reg)0 detlevk
0 Vinzenz Mai
Bei der Testabfrage einer Datenbanktabelle erhalte ich kein Ergebnis, obwohl die Tabelle existiert und auch Daten enthält.
Die Verbindung über
$db = @mysql_connect('xxx', 'yyy', 'zzz');
funktioniert einwandfrei.
Die Abfrage über
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql, $db);
liefert kein Ergebnis.
Die Testabfrage ist ein abgewandeltes Beispiel aus
Jörg Krause: PHP 5 Grundlagen und Profiwissen
Tippfehler konnte ich keine entdecken. Die Daten der Verbindung habe ich für diese Anfrage verändert, weil der Zugang nicht für alle öffentlich sein soll.
Ich weiß nicht mehr, wo ich noch den Fehler suchen soll!
Die Abfrage über
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql, $db);
> liefert kein Ergebnis.
Was liefert sie denn? Einen Error oder bloss ein leeres Ergebnis?
Mach mal mysql\_error(); nach Deiner Abfrage und sag bescheid (wenn Du dann noch Hilfe brauchst).
Viele Gruesse
der Bademeister
Hallo!
$db = @mysql_connect('xxx', 'yyy', 'zzz');
Gib das @ weg -> unterdrückt nämlich Fehlermeldungen
Die Abfrage über
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql, $db);
du hast keine Datenbank ausgewählt.
mit mysql\_connect() stellst du nur eine MySQL Verbindung her
Siehe: [PHP Manual - Mysql_connect](http://at.php.net/manual/de/function.mysql-connect.php)
Nimm entweder <http://at.php.net/manual/de/function.mysql-db-query.php> oder öffne die DB per <http://at.php.net/manual/de/function.mysql-select-db.php>
Grüße!
du hast keine Datenbank ausgewählt.
mit mysql_connect() stellst du nur eine MySQL Verbindung her
Siehe: PHP Manual - Mysql_connectNimm entweder http://at.php.net/manual/de/function.mysql-db-query.php oder öffne die DB per http://at.php.net/manual/de/function.mysql-select-db.php
Grüße!
Danke! Das dürfte es gewesen sein! Gerade als Anfänger, der sich das ohne Lehrer selbst beibiegt übersieht man solche Dinge sehr leicht!
Hallo,
Die Verbindung über
$db = @mysql_connect('xxx', 'yyy', 'zzz');
funktioniert einwandfrei.
Die Abfrage über
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql, $db);
> liefert kein Ergebnis.
Woher weisst du, dass es "kein" Ergebnis liefert?
nur `$result = mysql_query($sql, $db);`{:.language-php} erzeugt ja nur erstmal eine MySql Resource ... die man dann noch mit mysql\_fetch\_array() und wie diese Funktionen alle heissen auswerten muss, so mit while-Schleife und so.
Wenn du bei `$result = mysql_query($sql, $db);`{:.language-php} keinen Fehler (Ausnahme, Abbruch) bekommst, dann hat die Abfrage ja erstmal funktioniert.
Also wie sieht dein Code nach: `$result = mysql_query($sql, $db);`{:.language-php} aus?
Ciao, Frank
Woher weisst du, dass es "kein" Ergebnis liefert?
Ich habe da eine Abfrage:
if ($result)
{
$number = mysql_num_rows($result);
echo "<P>Es sind $number Datensätze gelesen worden.";
}
else
{
echo "<P>mysql_error($db)";
}
Diese Abfrage liefert die Fehlermeldung, also gibt es kein Result Set!
nur
$result = mysql_query($sql, $db);
erzeugt ja nur erstmal eine MySql Resource ... die man dann noch mit mysql_fetch_array() und wie diese Funktionen alle heissen auswerten muss, so mit while-Schleife und so.Wenn du bei
$result = mysql_query($sql, $db);
keinen Fehler (Ausnahme, Abbruch) bekommst, dann hat die Abfrage ja erstmal funktioniert.Also wie sieht dein Code nach:
$result = mysql_query($sql, $db);
aus?Ciao, Frank
Hallo
$db = @mysql_connect('xxx', 'yyy', 'zzz');
$sql = "SELECT * FROM tabelle";
$result = mysql_query($sql, $db);
> liefert kein Ergebnis.
grundsätzlich ist eine leere Ergebnismenge kein Fehler.
> Die Testabfrage ist ein abgewandeltes Beispiel aus
> Jörg Krause: PHP 5 Grundlagen und Profiwissen
Anscheinend ist dieses Buch inzwischen zu alt.
Ich empfehle heutzutage, sich nicht mehr mit den antiquierten und
leistungsschwachen mysql\_\*-Funktionen zu befassen, sondern statt
dessen mit [mysqli](http://www.php.net/manual/de/book.mysqli.php) anzufangen oder gleich einen Abstraktionslayer
zu nutzen.
Freundliche Grüße
Vinzenz