Gästebuch mit php/mySQL WO ist der Fehler ???
xeta
- php
hallo, habe ein gästebuch probeweise programmiert. Dabei binde ich eine MySQL Datenbank mit ein. nun habe allerdings fehlermeldungen in meinem Script. Und zwar will ich hier den Gesamten inhalt der Datenbank ausgeben.
Mein quellcode:
<html>
<head><title>beiträge anzeigen lassen</title>
</head>
<body>
<table align="center" cellspacing="0"cellpadding="0" border="1" width="80%">
<tr>
<td>DATE</td>
<td>NAME</td>
<td>EMAIL</td>
<td>IMPRESSION</td>
<td>COMMENT</td>
</tr>
<!-- die php programmierung -->
<?php
// die connektion zum mysql server
$db=mysql_connect();
//der sql befehl wir in der varaiblen "sql" gespeichert
$sql="SELECT * FROM impression ORDER BY date";
//der datebakzugriff wird nun ausgeführt
$res=mysql_query($sql, $db);
//eine schleife wird ausgeführt, solange die option wahr ist
if($res)
{
while($ligne = mysql_fetch_object($res))
{
//TAbellen werden erstellt, für jeden eintrag
print "<tr>";
print "<td>$ligne->date</td>";
print "<td>$ligne->nom</td>";
print "<td>$ligne->email</td>";
print "<td>$ligne->impression</td>";
print "<td>$ligne->commentaire</td>";
print "</tr>";
}
}
else
{
echo "Beim versuch einen Datensatz zu lesen ist ein Fehler aufgetreten<br>Fehler-Nummer:<b>".mysql_errno($db)."</b><br>\nFehler-Ausgabe:<b>".mysql_error($db)."</b>";
}
mysql_free_result($res);
?>
</table>
</body>
</html>
_____________________
Und nun die Fehlermeldung:
Beim versuch einen Datensatz zu lesen ist ein Fehler aufgetreten
Fehler-Nummer:1046
Fehler-Ausgabe:No Database Selected
Warning: Supplied argument is not a valid MySQL result resource in c:\foxserv\www\buch2\adminimp.php on line 46
_________________________
Nun was soll denn die WAHRNUNG da unten. ich wollte nur den speicher wieder frei....
ICh arbeite mit FoxServ. aber der 2 er version. und programmiere noch nicht mit der neue php version. Die Datenbak habe ich problemlos erstellt.
Könnte mir jemand den code korrigieren ?
Vielen Dank !
:)
xeta
Hallo Xeta,
// die connektion zum mysql server
$db=mysql_connect();
Auf welche Datenbank willst Du denn zugreifen?
Verwende dazu mysql_select_db()
http://www.php.net/manual/de/function.mysql-select-db.php
$sql="SELECT * FROM impression ORDER BY date";
$res=mysql_query($sql, $db);
Dann kannst Du Deine Abfrage absetzen ...
Und nun die Fehlermeldung:
Beim versuch einen Datensatz zu lesen ist ein Fehler aufgetreten
Fehler-Nummer:1046
Fehler-Ausgabe:No Database Selected
Da steht es doch ;-)
Gruss,
Vinzenz
versuche mal...
$host = "localhost";
$user = "root";
$password = "";
connectDB($host,$user,$password);
$db = "derNameDeinerDB";
mysql_connect($db);
$sql="SELECT * FROM impression ORDER BY date";
$res=mysql_query($sql);
Gruss
Heiner
Tachchen!
connectDB($host,$user,$password);
Das ist wohl eher eine frei definierte Funktion, ohne deren genau Angabe dieser Quelltext irgendwie nicht so recht Sinn ergibt ;)
LG
Lemmy
Neue Homepage, neues Design: http://www.olison.com
Da hab ich wohl was vergessen...
function connectDB($host,$user,$password){
$connectID = mysql_connect($host,$user,$password);
if($connectID){
return $connectID;
}else{
echo 'Es ist ein Fehler aufgetreten.';
exit();
}}
Gruss Heiner
Hallo Heiner,
versuche mal...
connectDB($host,$user,$password);
ähm... es gibt keine PHP Funktion "connectDB".
Falls das eine von dir definierte Funktion ist, wäre es vielleicht
sinnvoll sie auch mit dazuzuschreiben.
Da es sich xeta's Problem offenbar um eine mySQL Datenbank handelt,
stimmt der Aufruf von mysql_connect() schon. Allerdings sollte man
vielleicht auch die entsprechenden Parameter angeben.
siehe http://www.php.net/manual/en/function.mysql-connect.php
$db = "derNameDeinerDB";
mysql_connect($db);
mysql_connect erwartet 5 (optionale) Parameter:
string server, string username, string password, bool new_link, int client_flags
Aber keiner davon ist der Datenbankname. Die Datenbank wird mit
mysql_select_db("Datenbankname"); ausgewählt.
siehe: http://www.php.net/manual/en/function.mysql-select-db.php
Ich würde auch Dir, Heiner, empfehlen, dich (noch)mal gründlich
mit dem php manual auseinanderzusetzen.
Gruß,
dimde
moin
// die connektion zum mysql server
$db=mysql_connect();
Hier solltest du schon die Datenbank angeben, in der dein Gästebuch ist
$sql="SELECT * FROM impression ORDER BY date";
$res=mysql_query($sql, $db);
Diese Abfrage läuft aufgrund fehlender Datenbankverbindung ins Leere.
mysql_free_result($res);
Also kann auch kein Speicher wieder freigegeben werden.
Fehler-Nummer:1046
Fehler-Ausgabe:No Database SelectedWarning: Supplied argument is not a valid MySQL result resource in c:\foxserv\www\buch2\adminimp.php on line 46
Nun was soll denn die WAHRNUNG da unten. ich wollte nur den speicher wieder frei....
PHP ist halt ein Interpreter, d.h. es versucht, aus jeder Zeile was vernünftiges zu machen, egal ob vorher schwere Fehler auftraten oder nicht. Deshalb sind die meisten Warnungen nach einem Fehler eher sinnlos.