ecco ho fatto così, va meglio ma ancora non funziona tanto bene, perchè non me li mette in ordine per data e ora descrescente. Dovrei mettere il ORDER BY prima del GROUP BY, ma se lo faccio non funziona più. Certo se ci fosse qualcuno che mi desse una mano..


Codice PHP:
SELECT c_art_articolo. * , c_art_categoria. * , c_art_posizione. * 
FROM c_art_articolo
INNER JOIN c_art_categoria ON c_art_articolo
.id_art_categoria c_art_categoria.id_art_categoria
INNER JOIN c_art_posizione ON c_art_articolo
.id_art_posizione_home c_art_posizione.id_art_posizione

WHERE c_art_articolo
.id_art_posizione_home != '7' 
AND c_art_articolo.id_art_categoria != '11' AND c_art_articolo.id_art_categoria != '12' AND c_art_articolo.id_art_categoria != '13' AND c_art_articolo.id_art_categoria != '14' 
AND ((c_art_articolo.data_evento '$data_attuale'
OR (
c_art_articolo.data_evento '$data_attuale' AND c_art_articolo.ora_pubblicazione <= '$ora_attuale'))

GROUP BY c_art_categoria.id_art_categoria
ORDER BY c_art_articolo
.data_evento DESC c_art_articolo.ora_pubblicazione DESC 
LIMIT 10