Guarda, la sintassi mi sembra corretta.. quindi il problema è del valore di $where
solo che.. visto che come hai detto tu stesso l'errore nella query è "inspiegabile"
oltre a postarci il codice php (che ha variabili di cui non si sa il contenuto come detto su) avresti dovuto stampare il valore stringa della query risultante nell'errore o prima come vuoi..
Insomma fai così:
Codice PHP:
$querystr = "SELECT DATE_FORMAT(data, '%d/%m/%Y') AS data2, id, nome, cognome, messaggio, email, giorno, ora FROM ws_tab WHERE id = $where ";
$dati = mysql_query($querystr) or die ("query=$querystr <br /> Risultato errato :".mysql_error());
Per es, se allo script php non arriva -per qualche altro motivo, come sospetto- il parametro where o quello che è.. dunque $where è VUOTO, quindi con questa modifica ora nel messaggio di errore vedrai:
Codice:
query=SELECT DATE_FORMAT(data, '%d/%m/%Y') AS data2, id, nome, cognome, messaggio, email, giorno, ora FROM ws_tab WHERE id =
Risultato errato :Errore di sintassi nella query SQL vicino a '' linea 1
Se invece come sospettava debug in $where hai un'espressione SQL più complessa controlla le virgolette o quantomeno ora printaci il messaggio d'errore con il valore della query completo