Non ho capito molto di quello che hai scritto però quello che dico io è questo:

La select che fai è questa:

SELECT MONTH(data) AS mese, DAYOFWEEK(data) AS giorno_settimana, DAY(data) AS giorno, YEAR(dat) AS anno
FROM tabella
ORDER BY data
Codice PHP:

## Una volta eseguita la query fai
$res mysql_result($result);

$months = array('Gennaio''Febbraio''Marzo','Aprile''Maggio''Giugno''Luglio''Agosto''Settembre''Ottobre''Novembre''Dicembre');

$days = array('Domenica''Lunedì''Martedì''Mercoledì''Giovedì''Venerdì''Sabato');

$data $days[$res['giorno_settimana']].' '.$res['giorno'].' '.$months[$res['mese']-1].' '.$res['anno'];

echo 
$data
Mi sembra che vada
Non l'ho provato