Tobias Kloth: Wo liegt der Fehler?

Beitrag lesen

Hallo jaylibII,

<?php $sql = "SELECT

ueberschrift,
text

FROM
Test
WHERE anfang < '.time().' AND '.time().' < ende O
ORDER BY RAND() LIMIT 1
";

gibt ein `echo $sql;`{:.language-php} das aus was du vermutest?  
  

> `$return = mysql_query($sql) OR die(mysql_error());`{:.language-php}  

was sagt [mysql_num_rows()](http://de.php.net/mysql_num_rows) an dieser Stelle?  
  

> `while($_data = mysql_fetch_assoc($return))`{:.language-php}  

für einen Datensatz brauchst du keine Schleife ... :-)  
  
~~~sql
  

>   `anfang` timestamp(14) NOT NULL,  
>   `ende` timestamp(14) NOT NULL default '00000000000000',

schau dir die Ausgabe von time() mal an und dann das was in der Datenbank steht - du wirst feststellen, dass die beiden Ausgaben nicht das gleiche Format haben. Um die beiden Werte zu vergleichen musst du entweder den Wert in der Datenbank in einen Unix-Timestamp umwendeln, oder - besser - statt time() die MySQL-Funktion NOW() verwenden.

Grüße aus Nürnberg
Tobias