problem mit MySQL Abfrage [PHP]
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abstand
argument
beitrag
database
date
daten
eintrag
email
error
exit
fehler
folgendem ergebnis
gesetzt hast
nochmal
not
order
resource
result
skat
ungefhr
-
Hi Leute,
gleich vorweg möchte ich sagen, dass ich noch ein Anfänger in Sachen PHP bin.
Aber nun zu meinem Problem:
Ich möchte mir ein Gästebuch programmieren.
Dazu habe ich bereits eine Datei geschrieben, welche die eingegeben Daten an die MySQL Datenbank sendet.
Diese heißt add.php:
<?PHP $database= "usr_web258_2"; $sqlhost= "localhost"; $sqluser= "***"; $sqlpass= "***"; $db_link = @mysql_connect($sqlhost,$sqluser,$sqlpass); if(!$db_link) { echo "Es konte keine Verbindung zum gewählten Sql Server aufgebaut werden."; exit; }; if($db_link) { if(!mysql_select_db($database)) { echo "Es Konnte keine Verbindung zur Datenbank aufgebaut werden."; exit; }; }; echo " <h2>Mein erstes guestbook</h2> <form action='$PHP_SELF' method='GET'> <table> <tr> <td align='right'>Name:</td> <td><input type='text' name='name' /></td> </tr> <tr> <td align='right'>Email:</td> <td><input type='text' name='email' /></td> </tr> <tr> <td align='right'>Text:</td> <td><input type='text' name='text' /></td> <tr> <tr> <td colspan='2' align='right'><input type='submit' name='send' value='OK' /></td> </tr> </form> "; $date = date('Y.m.d'); $IP = $_SERVER['REMOTE_ADDR']; if ($send) { $sql="INSERT INTO guestbook (name,email,ip,date,text) VALUES('$name','$email','$IP','$date','$text')"; $result=mysql_query($sql); } ?>
Dies funktioniert reibungslos, mein Problem liegt in der Ausgabe der Daten:
guestbook.php:
<?php $database= "usr_web258_2"; $sqlhost= "localhost"; $sqluser= "web258"; $sqlpass= "***"; $db_link = @mysql_connect($sqlhost,$sqluser,$sqlpass); if(!$db_link) { echo "Es konte keine Verbindung zum gewählten Sql Server aufgebaut werden."; exit; }; if($db_link) { if(!mysql_select_db($database)) { echo "Es Konnte keine Verbindung zur Datenbank aufgebaut werden."; exit; }; }; $read = "SELECT * FROM guestbook"; $result = mysql_query('$read'); while ($row=mysql_fetch_array($result)) { echo "<br>"; echo "<table width='50%' height='100px' border='1' align='center'>"; echo "<tr>"; echo "<td colspan='2' width='100%' align='center' valign='middle'>Eintrag Nr.: ".$row['id']."</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='50%' align='left' valign='middle'> ".$row['name']."</td>"; echo "<td width='50%' align='right' valign='middle'> ".$row['email']."</td>"; echo "</tr>"; echo "<tr valign='top'>"; echo "<td height='100px' colspan='2'>".$row['text']."</td>"; echo "</tr>"; echo "<tr align='center' valign='middle'>"; echo "<td colspan='2'>".$row['date']."</td>"; echo "</tr>"; echo "</table>"; echo "<br>"; } ?>
Hierbei zeigt mir mein Browser aber folgenden Fehler an:
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web258/html/matze/php/php_guestbook/guestbook.php on line 16
"
Ich hoffe ihr könnt mir helfen - schon im vorraus gibt es einen Dank von mir ;) .
Matze
Beitrag geaendert: 31.3.2007 11:16:13 von ct2004
Beitrag geaendert: 31.3.2007 11:29:42 von ct2004 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So wie ich das beurteile, liegt es an der Abfrage selber:
SELECT * FROM guestbook
Ich habe dieses Problem auch immer wieder... Und es lag meistens daran.
Wie ich es mache:
SELECT * FROM `guestbook` ORDER BY `date` DESC
Ich hoffe es hilft und sonst einfach nochmals posten =)
mfg sebi
Ps: Vielleicht ist auch der Connect nicht korrekt... Oder die Tabelle ist in ner andern DB usw... Einfach nochmals überprüfen!
Beitrag geaendert: 31.3.2007 11:33:03 von skate-4fun -
die Methode mit den ' funktioniert leider nicht.
Aber die Verbindung mit der Db funktioniert, sonst würde eine Fehlermeldung angezeigt werden.
immer noch der selbe Fehler:
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web258/html/matze/php/php_guestbook/guestbook.php on line 16"
Weitere Lösungsvorschläge? -
Sind alle Variabeln eindeutig??? Benutzt duu sie nie vorher??? also zB $result...
Das könnte noch einen Grund sein.
Und bei der While-Schleife:
while($row = mysql_fetch_array($result)){
(ohne abstände... ich weiss zwar nicht ob das eine Rolle spielt...)
lg sebi
Beitrag geaendert: 31.3.2007 11:36:22 von skate-4fun -
also an den Abständen kann es eigentlich nicht liegen. Nein ich benutze die Variablen niemals zuvor. Es existieren wirklich nur die zwei Dateien bisher.
Und immer noch der selbe Fehler :P
Noch jmd irgendeine Idee???
//->
Ich habe es mal so probiert:
$read = "SELECT * FROM 'guestbook' ORDER BY 'date' DESC"; $result = mysql_query($read); while ($row = mysql_fetch_assoc($result)) {
und auch so:
while ($row = mysql_fetch_assoc(mysql_query(SELECT * FROM guestbook ORDER BY date DESC))) {
bei dem letzen mit folgendem Ergebnis:
=>
Parse error: parse error, unexpected T_STRING in /srv/www/htdocs/web258/html/matze/php/php_guestbook/guestbook.php on line 14
Beitrag geaendert: 31.3.2007 11:49:03 von ct2004 -
Ich habe es mal so probiert:
$read = "SELECT * FROM 'guestbook' ORDER BY 'date' DESC"; $result = mysql_query($read); while ($row = mysql_fetch_assoc($result)) {
Ich weiß nicht ob es daran liegen könnte, dass du keine Verbindungsvariable gesetzt hast, also ungefähr so:
$read = "SELECT * FROM 'guestbook' ORDER BY 'date' DESC"; $result = mysql_query($read, [b]$verbindung[/b]); while ($row = mysql_fetch_assoc($result)) {
-
ahhh jetzt hab ichs...
<?php $database= "usr_web258_2"; $sqlhost= "localhost"; $sqluser= "web258"; $sqlpass= "a3q4rz"; $db_link = @mysql_connect($sqlhost,$sqluser,$sqlpass); if(!$db_link) { echo "Es konte keine Verbindung zum gewählten Sql Server aufgebaut werden."; exit; }; if($db_link) { if(!mysql_select_db($database)) { echo "Es Konnte keine Verbindung zur Datenbank aufgebaut werden."; exit; }; }; $read = "SELECT * FROM guestbook ORDER BY 'date' DESC"; $result = mysql_query($read); while ($row = mysql_fetch_assoc($result)) { echo "<br>"; echo "<table width='50%' height='100px' border='1' align='center'>"; echo "<tr>"; echo "<td colspan='2' width='100%' align='center' valign='middle'>Eintrag Nr.: ".$row['id']."</td>"; echo "</tr>"; echo "<tr>"; echo "<td width='50%' align='left' valign='middle'> ".$row['name']."</td>"; echo "<td width='50%' align='right' valign='middle'> ".$row['email']."</td>"; echo "</tr>"; echo "<tr valign='top'>"; echo "<td height='100px' colspan='2'>".$row['text']."</td>"; echo "</tr>"; echo "<tr align='center' valign='middle'>"; echo "<td colspan='2'>".$row['date']."</td>"; echo "</tr>"; echo "</table>"; echo "<br>"; } ?>
danke! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage