Fehler bei Abfrage?

heikomi

Erfahrenes Mitglied
Hi
ich brauch mal etwas Hilfe. Ich find einfach den kleinen Fehler nicht.
In einer Datenbank frage ich für ein Bestätigungslink (per Mail) 2 Felder ab
eMail_key sowie das Verfallsdatum. Der Key ist MD5 verschlüsselt also als String und wird auch ohne Probleme gefunden. ´Das Verfallsdatum habe ich als INT(11) deklariert und steht auch richtig in der DB. Meine Abfrage lautet:

PHP:
  $akt_zeit = time();
  echo $akt_zeit."<br>\n";      // nur zum testen
  $email_key = $_GET['id'];

  mysql_select_db($datenbank, $connect) or die (mysql_error());
  $query  = "SELECT * FROM ratespiel
               WHERE
                code = '".$email_key."'
               AND
                verf <= ".$akt_zeit.""
  or die (mysql_error());

  $result = mysql_query($query) or die (mysql_error());
  while ($row = mysql_fetch_array($result))
  {
    $ok = $ok + 1;
    echo $row['verf']."<br>\n";     //  verfallszeit
    echo $ok."<br \>\n";
  }

Ich bekomme keinen Datensatz angezeigt.


Hier hingegen schon (wenn ich die Verfallszeit nicht mit Abfrage):
PHP:
  $query  = "SELECT * FROM ratespiel WHERE code = '".$email_key."'" or die (mysql_error());
  $result = mysql_query($query) or die (mysql_error());
  while ($row = mysql_fetch_array($result))
  {
    $ok = $ok + 1;
    echo $row['verf']."<br>\n";
    echo $ok."<br \>\n";
  }

Ausgabe:
Code:
1242389801
1242393251
1

Was ist also falsch?

LG Heiko
 
PHP:
mysql_select_db($datenbank, $connect) or die (mysql_error());
  $query  = "SELECT * FROM ratespiel
               WHERE
                code = '".$email_key."'
               AND
                verf <= ".$akt_zeit.""
  or die (mysql_error());

  $result = mysql_query($query) or die (mysql_error());

ist schon mal falsch, denn du hängst an die Variable $query ein "or die".
sollte vielleicht so aussehn:

PHP:
mysql_select_db($datenbank, $connect) or die (mysql_error());
  $query  = "SELECT * FROM ratespiel
               WHERE
                code = '".$email_key."'
               AND
                verf <= ".$akt_zeit;

  $result = mysql_query($query) or die (mysql_error());
 
Hi

ich habe es entfernt aber der Fehler tritt dennoch auf *Grübel*

Edit:
Man Man Man, der Fehler ist gefunden und wie vermutet simpel.

verf <= ".$akt_zeit."" muss natürlich verf >= ".$akt_zeit."" sein ;)

Die Verfallszeit muss natürlich höre sein als die aktuelle Zeit.
Aber dennoch danke euch beiden für den Tip mit dem OR DIE, das habe ich immer so geschrieben.


LG Heiko
 
Zuletzt bearbeitet:
hi kuddeldaddeldu, hab den letzten Post von mir gerade Editiert. Fehler ist das die Verfallszeit höher ist als die aktuelle ;)

LG Heiko
 
Zurück