php guestbook / habe ein problem!

Zum einen ist mir grad ncoh ein Logikfehler aufgefallen.
Änder die Zeile 16 bitte in folgende:

PHP:
if( $fetch[0] == 0 )

Hast du in Zeile das Wort "datumsspalte" geändert?
 
Hallo Gainwar,

Ja ich habe das Datumsspalte angepasst, aber es t immer noch nicht.
Immer noch den Fehler:


Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\website_data\gb_rene.php on line 16

Hier nochmal mein Code:

PHP:
<?php
if(!empty($_POST['senden'])){
  if(!empty($_POST['nam'])&&!empty($_POST['nach'])){
$name = $_POST['nam'];
$mail = $_POST['mail'];
$nach = $_POST['nach'];
$entry_datum = $_POST['entrydate'];

mysql_connect('localhost','root','')or die("<h1>OPFER</h1>");
mysql_select_db('bobbydick79_01');

// @Mafr: Ueberpruefen ob bereits ein Eintrag mit dem gleichen datum vorhanden ist.

$sqlDateCheck = "SELECT COUNT(*) FROM guestbook WHERE datum=".mysql_real_escape_string($entry_datum);
$query = mysql_query( $sqlDateCheck );
$fetch = mysql_fetch_row( $query );
if( $fetch[0] == 0 )
{
  // Neuer Eintrag.
  $SQL="INSERT INTO guestbook VALUES(NULL,'".$mail."','".$name."','".$nach."','".date("y-m-d")."','".date("H:i")."')";
  mysql_query($SQL);
}
else
{
  // Benutzer hat aktualisieren gedrueckt.
}

}else{
$error = 'Bitte alle Felder ausfüllen!';
}
}
?>

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>www.leise.de</title>
<meta name="author" content="Robert Klepsch">
<link rel="stylesheet" type="text/css" href="style.css">



</head>
<body onLoad="MM_preloadImages('images/rambo2.JPG','images/ice%20t%20electro%20rap2.JPG','images/hubschrauber2.JPG','images/breakin%20n%20entren2.JPG')">
<table  bgcolor="#000000" border="0" cellpadding="0" cellspacing="0" align="left" width="100%" height="100%" >
    <tr><td  rowspan="4" width="39%" height="100%"><img src="http://www.tutorials.de/forum/images/versuch_grau.jpg" alt="" width="100%" height="100%"   border="0"></td>
        <td style="background-image:url(images/head.jpg); margin:0; padding:0" align="center" width="61%" height="130" colspan="3"></td>
    </tr>
    <tr>
      <td height="5%" ><div class="ueberschrift">Navigation</div></td>
      <td align="center"><div class="ueberschrift">&nbsp;</div></td>
    </tr>
    <tr>
      <td  bgcolor="#363636" valign="top" align="left" width="135">
        <ul class="menue">
          <li><a href="index.html">Startseite</a></li>
          <li><a href="ich.php">über mich</a></li>
          <li><a href="bilder_gallery_test/album/index.html">Bilder</a></li>
          <li><a href="gb_rene.php">» Gästebuch</a></li><br><br><br><br><br><br><br><br><br>
        </ul>

      </td>
      <td valign="top" align="center" width="617" height="450"><h2>&nbsp;</h2>
         <table   width="95%"  border="1" height="530">
          <tr>
              <td valign="top" >




              <form action="gb_rene.php" method="POST">

              <!-- @Mafr: Zeitstempel -->
              <input type="hidden" name="entrydate" value="<?php date() ?>">

       <table align="right" border="1"  width="90%" cellpadding="5">
       <tr >
       <td id="gastform" width="70" ><b><font face="Arial">Email:</font></td>
       <td><input type="text" name="mail" size="20" id="form" value="<?php if (!empty($error)) echo $_POST['mail'];?>"></td>

       </tr>
       <td id="gastform"><b><font face="Arial">Name:</font></td>
       <td><input type="text" name="nam" size="20" id="form" value="<?php if (!empty($error)) echo $_POST['nam'];?>"</td></tr>
       <td id="gastform"><b><font face="Arial">Nachricht:</font></td>
       <td><textarea name="nach" cols="23" rows"5" id="form"><?php if (!empty($error)) echo $_POST['nach'];?></textarea></td>
        <br>
       <td valign="bottom" ><input type="Submit" name="senden" value="Eintragen" style="width:151px;"></td>
       </form></tr>
       <tr><td colspan="3"><br>

PHP:
<?php
       echo '<h5 id="gastform">'.$error.'</h5>';
       mysql_connect('localhost','root','')or die("<h1>OPFER</h1>");
       mysql_select_db('bobbydick79_01');
       $SQL2   = "SELECT * FROM guestbook ORDER BY id DESC";
       $ergtab = mysql_query($SQL2);

       while ($data = mysql_fetch_array($ergtab)) {

         echo'
         <table border="1" align="center"  width="65%">
          <tr>
           <td bgcolor="#3C3C3C" valign="top" width="70%"><i>Name:</i>&nbsp;
             <font face="@Arial Unicode MS">'.$data[name].'</font>
           </td>
           <td  width="45" align="right" bgcolor="#3C3C3C">'.substr($data['datum'],8,2).'.'.substr($data['datum'],5,2).'.'.substr($data['datum'],0,4).'
           <br>'.$data[uhrzeit].'&nbsp;
           </td>
        </tr>
        <tr>
         <td colspan="2" valign="top"><br>'.$data[nachricht].'
         </td>
        </tr>

       ';
       }
      ?>
 
Hallo,

dann ist es nötig das du aus dem Zeitstempel

$_POST['entrydate']

das Datum und die Uhrzeit extrahierst.
Das hast du ja schon einmal gemacht.

PHP:
$dasDatum = date( "Y-m-d", $_POST['entrydate'] );
$dieZeit  = date( "H:i:s", $_POST['entrydate'] );

Anschließend muss die SELECT Abfrage so umgebaut werden,
dass nach Datum und Uhrzeit überprüft wird.

Kann es dir jetzt leider nicht komplett machen, da ich weg muss
und erst heute Abend wieder da bin.

Viel Erfolg
Gruß Manuel
 
hast du noch zeit die select anweisung zu posten, weiß nur dass es ne und abfrage sein muss, aber seh bei den klammern nicht durch...


Hier das was ich geändert habe, aber bekomme immernoch einen Fehler gemeldet.

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\website_data\gb_rene.php on line 20




PHP:
<?php
if(!empty($_POST['senden'])){
  if(!empty($_POST['nam'])&&!empty($_POST['nach'])){
$name = $_POST['nam'];
$mail = $_POST['mail'];
$nach = $_POST['nach'];


$dasDatum = date( "Y-m-d", (int)$_POST['entrydate'] );
$dieZeit  = date( "H:i:s", (int)$_POST['entrydate'] );


mysql_connect('localhost','root','')or die("<h1>Verbindungsfehler</h1>");
mysql_select_db('bobbydick79_01');

// @Mafr: Ueberpruefen ob bereits ein Eintrag mit dem gleichen datum vorhanden ist.

$sqlDateCheck = "SELECT COUNT(*) FROM guestbook WHERE datum=".mysql_real_escape_string($dasDatum)."And WHERE uhrzeit=".mysql_real_escape_string($dieZeit);
$query = mysql_query( $sqlDateCheck );
$fetch = mysql_fetch_row( $query );
if( $fetch[0] == 0 )
{
  // Neuer Eintrag.
  $SQL="INSERT INTO guestbook VALUES(NULL,'".$mail."','".$name."','".$nach."','".date("y-m-d")."','".date("H:i")."')";
  mysql_query($SQL);
}
else
{
  // Benutzer hat aktualisieren gedrueckt.
}

}else{
$error = 'Bitte alle Felder ausfüllen!';
}
}
?>
 
Zuletzt bearbeitet:
Hallo,
versuch mal dieses SQL:

SQL:
SELECT COUNT(*) FROM guestbook WHERE datum=".mysql_real_escape_string($dasDatum)." AND uhrzeit=".mysql_real_escape_string($dieZeit)

Ich habe das zweite "WHERE" entfernt, da war der Syntax falsch.
Wenn das nicht geht, dann kann ich dir auch heute Abend über ICQ helfen.

Manuel
 
Zuletzt bearbeitet von einem Moderator:
Zurück