Metti anche l'ora?

Cioè se fai:

codice:
select timediff("2008-08-05 00:00:00", "2008-08-02 00:00:00")
funziona (restituisce 72:00:00)

mentre se fai

codice:
select timediff("2008-08-05", "2008-08-02")
non funziona.

In PHP faresti:

Codice PHP:
$query "SELECT TIMEDIFF(campo1, campo2) AS diff FROM tabella";
$res mysql_query($query);
$row mysql_fetch_array($res);
$diff split($row['diff'], ':');
$ore $diff[0];
$min $diff[1];
$sec $diff[2]; 
Poi applichi il resto che ti ho scritto sopra.

Nota che se non te ne frega niente di ore minuti e secondi, ma vuoi solo i giorni di differenza puoi usare DATEDIFF invece di TIMEDIFF (e puoi trovare mesi e anni con lo script di sopra)