Gästebuch fast fertig, trotzdem Fehler

schneekanone

Grünschnabel
hallöchen an alle

seit wochen suche, lese und bastle ich an einem gästebuch und nun bin ich hoffentlich fast fertig, trotzdem kommen noch fehlermeldungen
weiß auch nicht ganz wie ich die fehlermeldungen die ich angezeigt bekommen kann einfügen soll, damit ich genauere ergebnisse bekomme
hier erstmal der code:

PHP:
</head>
<body>
<h2><a href="#neuereintrag">Eintrag hinterlegen</a><br>
<br>
<?php
$DatabasePointer = mysql_connect("localhost", "benutzer", "pass");
mysql_select_db("gaestebuch", $DatabasePointer);
$ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);
echo mysql_error();exit();
?>
</h2>
<table border="0">
<?
$result = mysql_query($sql);
while($gaestebuch = mysql_fetch_object($result))
{
?> 
<tr>
<td><b>#<?php echo$i+1; ?>: <?php echo$gaestebuch->Titel; ?></b></td>
</tr>
<tr>
<td><?php echo nl2br($gaestebuch->Eintrag); ?></td>
</tr>
<tr>
<td>Eintrag von <b><?php echo$gaestebuch->name; ?></b> am <b><?php echo substr($gaestebuch->Erstellt, 8, 2); ?>.<?php echo substr($gaestebuch->Erstellt, 5, 2); ?>.<?php echo substr($gaestebuch->Erstellt, 0, 4); ?> <?php echo substr($gaestebuch->Erstellt, 10); ?></b></td>
</tr>
<tr>
<td><hr></td>
</tr>
<?php
}
?>
</table><br><br>
<h3><a name="neuereintrag">Neuer Eintrag</a></h3>
<form action="et.php" method="post">
<table border="0">
<tr>
<td width="294"><div align="right">
<p>&nbsp;</p>
<p><b>Name
<input name="Name" maxlength="50" type="text" />
</b></p>
<p>&nbsp;</p>
</div></td>
<td width="208" rowspan="3"><textarea cols="50" name="Eintrag" rows="20"></textarea></td>
</tr>
<tr>
<td><div align="right">
<p>&nbsp;</p>
<p><b>Mail
<input maxlength="40" name="Titel" type="text" />
</b></p>
<p>&nbsp;</p>
</div></td>
</tr>
<tr>
<td height="46"><div align="right">
<p>&nbsp;</p>
<p><b>Homepage
<input type="text" name="homepage" />
</b></p>
<p>&nbsp;</p>
</div><b><label></label>
</b></td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><div align="center">
<input name="Send" type="submit" value="Abschicken" />
<input name="Reset" type="reset" value="Löschen" />
</div></td>
</tr>
</table>
</form>
</body>
</html>

ohne den echo mysql_error komme ich auf die seite wo entweder ein dankeschön dasteht oder es zu einem fehler kam, sieht dann so aus

PHP:
</head>

<body>
<?php

$DatabasePointer = mysql_connect("localhost", "benutzer", "pass");
mysql_select_db("gaestebuch", $DatabasePointer);

$SQL = "INSERT INTO gaestebuch (name, mail, homepage, text, datum) VALUES ('".$_REQUEST['name']."', '".$_REQUEST['titel']."', '".$_REQUEST['text']."', NOW(''))";
mysql_query($SQL, $DatabasePointer);

if(mysql_affected_rows($DatabasePointer) == 1)
{
?>
<p>Danke für deinen Eintrag<br>
<a href="gaestebuch.php">Zurück</a></p>
<?php
}
else
{
?>
<p>Oh, da ist ein Fehler unterlaufen!<br>
<a href="javascript:history.back();">Zurück</a></p>
<?php
}
?>
</body>
</html>

als letztes hab ich noch den adminbereich

PHP:
</head>

<body>
<?php

$Zugangspasswort = "...";

if($_REQUEST['Send'] && $Zugangspasswort == $_REQUEST['Passwort'])
{
   $DatabasePointer = mysql_connect("localhost", "benutzer", "pass");
   mysql_select_db("gaestebuch", $DatabasePointer);
   
   if($_REQUEST['Loeschen'] && $_REQUEST['ID'])
   {
      mysql_query("DELETE FROM Gaestebuch WHERE ID = '".$_REQUEST['ID']."'", $DatabasePointer);
   }

   $ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);
?>

<table border="0">
<?php
   for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
   {
      $Gaestebuch = mysql_fetch_object($ResultPointer);
?>
 <tr>
  <td><b>#<?php echo$i+1; ?>: <?php echo$gaestebuch->Titel; ?></b></td>
 </tr>
 <tr>
  <td><?php echo nl2br($gaestebuch->Eintrag); ?></td>
 </tr>


 <tr>
  <td>Eintrag von <b><?php echo$gaestebuch->Name; ?></b> am <b><?php echo substr($gaestebuch-> Erstellt, 8, 2); ?>.<?php echo substr($gaestebuch-> Erstellt, 5, 2); ?>.<?php echo substr($gaestebuch-> Erstellt, 0, 4); ?> <?php echo substr($gaestebuch->Erstellt, 10); ?></b></td>
 </tr>
 <tr>
  <td><a href="<?php echo$_SERVER['PHP_SELF']; ?>?Send=1&Passwort=<?php echo$_REQUEST['Passwort']; ?>&Loeschen=1&ID=<?php echo$gaestebuch->ID; ?>">Eintrag löschen</a></td>
 </tr>
 <tr>
  <td><hr></td>
 </tr>
<?php
   }
?>
</table>
<?php
}
else
{
?>
<table border="0">
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" method="post">
 <tr>
  <td>Passwort</td>
  <td><input name="Passwort" size="10" type="password"></td>
 </tr>
 <tr>
  <td align="center" colspan="2"><input name="Send" type="submit" value="Login"></td>
 </tr>
</form>
</table>
<?php
}
?>
</body>
</html>

so hoffe ihr könnt mir dabei helfen, bin schon fast am ausrasten
 
Ich kann auch nicht nachvollziehen was du mit Fehlermeldungen meinst bzw wo es bei dir hängt. Aber mir springt in der ersten Datei nach deinem mysql_error(); ein exit(); ohne Bedingung ins Auge. -> http://de2.php.net/manual/de/function.exit.php Das beendet dein Script an dieser Stelle auf biegen und brechen und zwar unabhängig ob es einen MySQL Error gab oder nicht. Meinst du das vielleicht mit Fehler?
 
einmal kam die fehlermeldung ohne dem mysql error

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/tribute/www/gb.php on line 20>>>das wäre dann bei dem ersten quelltext mit

PHP:
$result = mysql_query($sql);

und

mit dem mysql error

Eintrag hinterlegen

No database selected was für mich soviel heißen würde wie das es nicht auf die datenbank zugreifen kann
keine ahnung ob es vielleicht an den bezeichnungen liegt das da etwas falsch ist
zumindest habe ich alles klein geschrieben, was ich dann auch im text selber beschrieben habe
 
Ah >,.< nun fällts mir wie Schuppen von den Augen. Siehe Kommentare im Code

PHP:
<?php
$DatabasePointer = mysql_connect("localhost", "benutzer", "pass"); // Datenbank initialisiert, ich geh mal von aus, dass in deinem Script dann die richtigen Daten stehen
mysql_select_db("gaestebuch", $DatabasePointer); // DB "gaestebuch" wird ausgewählt, wenn die bei dir so heißt, auch in Ordnung
$ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer); // $ResultPointer enthält hier offenbar die Abfrage aller Einträge, deine Tabelle heißt demnach ebenfalls "gaestebuch"
echo mysql_error(); // kein exit(); da das ohne or oder if bei dir immer beenden würde
?>
</h2>
<table border="0">
<?
$result = mysql_query($sql); // Und hier hängts...klar, es wurde bisher auch nirgends die Variable $sql benutzt. Was soll er also Abfragen bei einer leeren Variable die übergeben wird. Das resultiert dann in einem Fehler bei der nächsten Zeile 
// while($gaestebuch = mysql_fetch_object($result)) Wenn ich das oben richtig gedeutet habe, dann muss hier also der $ResultPointer hin, das sieht dann so aus:
while($gaestebuch = mysql_fetch_object($ResultPointer))
{
?>
 
soo neue feststellung

das exit aus dem echo mysql ist weg
hab eine andere schleife gewählt, nämlich die for
nachdem ich beides tat kommen nun diese meldungen

Unknown column 'Erstellt' in 'order clause'

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /users/tribute/www/gb.php on line 20
#1:

Eintrag von am ..


das was es mir dann auf einer seite anzeigt

PHP:
<h2><a href="#neuereintrag">Eintrag hinterlegen</a><br>
<br>
<?php
$DatabasePointer = mysql_connect("localhost", "benutzer", "pass");
mysql_select_db("tribute", $DatabasePointer); // hatte noch den falschen datenbanknamen gehabt 
$ResultPointer = mysql_query("SELECT * FROM gaestebuch ORDER BY Erstellt DESC", $DatabasePointer);
echo mysql_error();
?>
</h2>
<table border="0">
<?{
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
$gaestebuch = mysql_fetch_object($ResultPointer);

?> 
<tr>
<td><b>#<?php echo$i+1; ?>: <?php echo$gaestebuch->text; ?></b></td>
</tr>
<tr>
<td><?php echo nl2br($gaestebuch->Eintrag); ?></td>
</tr>
<tr>
<td>Eintrag von <b><?php echo$gaestebuch->name; ?></b> am <b><?php echo substr($gaestebuch->Erstellt, 8, 2); ?>.<?php echo substr($gaestebuch->Erstellt, 5, 2); ?>.<?php echo substr($gaestebuch->Erstellt, 0, 4); ?> <?php echo substr($gaestebuch->Erstellt, 10); ?></b></td>
</tr>

im obigen nochmal der betroffene code den ich mit der for-schleife geändert habe, weil diese mir evtl. bessere ergebnise liefert, dadurch zeigte sich dann auch das mit Eintrag von
 
Ich fände es klüger, wenn du erst einmal deine Datenbankstruktur preisgibst. Bei deinem letzten Fehler handelt es sich vermutlich um einen Groß-/Kleinschreibe-Problem. Spalte heißt "erstellt" und nicht "Erstellt".

Grüße
 
Zurück