Vinzenz Mai: Fehler in SQL String (geht nicht immer...)

Beitrag lesen

Hallo,

$sql_string="SELECT DISTINCT ceil( (TIMESTAMPDIFF(SECOND , NOW( ) , FROM_UNIXTIME( datum ) ) ) /86400 * -1
) AS days

Unix-Timestamps sind meiner Meinung nach eine schlechte Wahl, Zeitpunkte in einer Datenbank abzuspeichern.
Was soll Deine Berechnung bewirken? Das sieht viel zu kompliziert und vor allem fehlerhaft aus.

[...]

$sql_query=mysql_query($sql_string);

Warum überprüfst Du im Fehlerfall nicht den Inhalt von mysql_error()?
Tu das!

while($days = mysql_fetch_assoc($sql_query)){


> SELECT DISTINCT ceil( ( TIMESTAMPDIFF( SECOND , NOW( ) , FROM\_UNIXTIME( datum ) ) ) /86400 \* -1 ) AS days from `16\_96 AG` WHERE user\_id =1 and status!=0  
  
Deine Tabellennamen sind denkbar schlecht gewählt.  
  

> Bei folgendem String (wo Null als korrektes Ergebnis ausgegeben werden sollte)  
  
NULL oder 0?  
  

> SELECT DISTINCT ceil( ( TIMESTAMPDIFF( SECOND , NOW( ) , FROM\_UNIXTIME( datum ) ) ) /86400 \* -1 ) AS days from `16\_96 Ma duenn` WHERE user\_id =1 and status!=0  
  
Warum sind offensichtlich gleichartige Daten in unterschiedlichen Tabellen gespeichert? Sieht nach einem weiteren Designfehler aus.  
  

> Warning: mysql\_fetch\_assoc(): supplied argument is not a valid MySQL result resource in /home/www/web262/html/brain\_collection/funktionen.php on line 254  
  
Tja, schau' Dir die Ausgabe von [mysql_error](http://www.php.net/manual/de/function.mysql-error.php) an und teile diese uns mit.  
  
  
Freundliche Grüße  
  
Vinzenz