xeta: Gästebuch mit php/mySQL WO ist der Fehler ???

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

  1. 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

  2. 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

    1. 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

      --
      Realität ist die Illusion, die durch ein zu geringes Maß an Alkohol entsteht...
      1. 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

    2. 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

  3. 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 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....

    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.