Fehler in Shoutbox

Sebastian Wramba

Erfahrenes Mitglied
Ich hab folgenden Fehler.
Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\gouraud3\shoutbox.php on line 110

Liegt das daran, dass nix in der Datenbank ist?

Das gesamte Script sieht so aus:
PHP:
<?PHP

//////////////// SHOUTBOX BY -|gouraud
/////////////// (c) 2002 by -|gouraud
////////////// E-Mail: gouraud@web.de
///////////// Web: http://www.g-o-stylez.de


// MYSQL-EINSTELLUNGEN

$sqlhost  = 'localhost';
$username = 'gouraud';
$passwort = 'bla';
$database = 'gouraud';


//  ADMINISTRATIVE EINSTELLUNGEN

$pass     = 'test';
$smilies  = '0/1'; // Smilies ja (1) oder nein (0)
$proseite = '10'; // ANZAHL DER EINTRÄGE PRO SEITE
$sitename = 'shoutbox.php'; // DATEI-NAME



// Todo:
//   - Smilie-Umwandler
//   - Zeilenumbruch


///// Zum installieren folgendes ausführen: ///////
// CREATE TABLE shout (
//   id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
//   name VARCHAR(100),
//   date TEXT,
//   time TEXT,
//   nachricht TEXT
// )




// AB HIER NICHTS MERH ÄNDERN!!!

$db = mysql_connect ($sqlhost,$username,$passwort);
mysql_select_db ($database);
$sql = "SELECT * FROM shout";
$result = mysql_query($sql,$db);
$number = mysql_num_rows($result);
$seiten=floor($number/$proseite);
$start=$page * $proseite;
$sql="SELECT * FROM table LIMIT $start,$proseite";
$result = mysql_query($sql);



if($insert) {
$date = date("d.m.Y");
$time = date("H:i");
mysql_query("INSERT INTO shout (name,message,date,time) VALUES ('$name','$message','$date','$time')");
}

if($update) {
mysql_query("UPDATE shout SET message='$message' WHERE id='$id'");
}

if(isset($admin)) {
  if(isset($formpass) && $formpass == $pass) {

       while ($row = mysql_fetch_row($result)) {
?>
<form action="<? echo "$sitename"; ?>?admin=1">
<?
echo "<input type=\"hidden\" name=\"id\" value=\"".$row['id']."\">";
echo "<input type=\"text\" name=\"name\" value=\"".$row['name']."\" <BR>";
echo "<input type=\"textarea\" name=\"nachricht\" rows=\"20\" cols=\"20\" value=\"".$row['message']."<br><small>edited by admin</small>\" <BR>";
echo "<input type=\"submit\" name=\"update\" value=\"updaten\">";
echo "</form>";

                                               } // while-Schleife
                                            } // formpass-schleife
         else {
?>
<b>Bitte Passwort für Adminbereich eingeben:</b>
<form action="<? echo "$sitename"; ?>?admin=1">
<input type="password" name="formpass">
<input type="submit" name="login" value="weiter">
</form>
<?
             } // else-formpass-schleife
} // admin-schleife
else {

$ende = $start + $proseite;
if ($ende>$number) { $ende = $number; }

echo "Page $page <BR>";
?>
<form action="<? $PHP_SELF ?>">
<table BORDER="0" CELLSPACING="0" cellpadding="10" width="115">
<tr>
<td width="114"><font size="1" face="Verdana">
<input NAME="name" SIZE="17" maxlength="15" value="name" onblur="if (value == '') {value='name'}" onfocus="if (value == 'name') {value =''}"><br>
<input NAME="message" SIZE="17" maxlength="100" value="nachricht" onblur="if (value == '') {value='message'}" onfocus="if (value == 'message') {value =''}"><br>
<input TYPE="SUBMIT" name="insert" VALUE="shout" class="button">
</form>
<br>

<?
while ($row = mysql_fetch_row($result)) {
echo "<font color=\"#96CC29\">".$row['name']."</font></b><br>";
echo "| ".$row['date']." - ".$row['time']." |<br>";
echo "| ".$row['ip']." |<br>";
echo "<font color=\"#96CC29\"><span style=\"word-break:break-all;word-wrap:break-word\">".$row['message']."</span></font>";
echo "<p></p>";
} // while schleife
?>
<!--LOOPEND--></td>
</tr>
</table>
<?
for($i=0; $i<=$seiten; $i++) {
        if ($i==$page) {
                echo $i."&nbsp;";
        } // if-for-seiten-schleife
        else {
                echo "<A HREF=\"$PHP_SELF?page=$i\">$i</A>&nbsp;";
        } // else-for-seiten-schleife
} // else-admin-schleife
} // for-schleife
?>

thx 4 help
 

stiffy

Erfahrenes Mitglied
tjo hab leider grad kein bock auf 110 zu zählen, mach doch die zeile mal deutlich plz

ausserdem solltest du des hier noch ändern:

PHP:
$smilies  = '0/1'; // Smilies ja (1) oder nein (0)

weil entweder 0 oder 1... is klar :p
 

René Paschold

Erfahrenes Mitglied
PHP:
while ($row = mysql_fetch_row($result)) {
echo "<font color=\"#96CC29\">".$row['name']."</font></b><br>";
echo "| ".$row['date']." - ".$row['time']." |<br>";
echo "| ".$row['ip']." |<br>";
echo "<font color=\"#96CC29\"><span style=\"word-break:break-all;word-wrap:break-word\">".$row['message']."</span></font>";
echo "<p></p>";
} // while schleife

Dein Script kann mit der Variable $result nichts anfangen. Schau mal ob das was ausgibt und ob sie definiert ist.
 

Sebastian Wramba

Erfahrenes Mitglied
Hehe. Shit. Mir fällt grad auf, dass da "FROM table" steht. Die gibt's gar nicht... :)

Und nu hab ich noch folgenden Bug:
Der fügt nix ein. Sind die Zeilne hier richtig?

PHP:
if($insert) {
$date = date("d.m.Y");
$time = date("H:i");
mysql_query("INSERT INTO shout (name,message,date,time) VALUES ('$name','$message','$date','$time')");
}
 
Zuletzt bearbeitet:

netzbazille

Mitglied
Vielleicht täusche ich mich ja auch, aber in der 'CREATE TABLE'-Anweisung definierst du ein Feld 'nachrichten' und in der 'INSERT'-Anweisúng taucht das Feld 'message' auf - irgendwie nicht gleich. ;)

Aber wirst du wahrscheinlich schon gesehen haben, oder?

Gruß