Il problema deve essere affrontato sotto diverse prospettive ma tutte incentrate sulla questione dello "charset" cioè set di caratteri ammessi.
Il problema può essere affrontato:
- sul lato db cioè lo charset di caratteri ammessi nel db;
- sul lato X/HTML lo charset ammesso dal documento prodotto.
Per verificare che il carattere accentato sia salvato correttamente nel db puoi farre una verifica diretta tramite phpmyadmin. Generalmente impostando lo charset del db su latin1 dovresti salvare correttamente tutti i caratteri (io addirittura con tale charset ho inserito nel db anche caratteri arabi e cinesi senza problemi...).
A questo punto quando fai il select e stampi a video la pagina devi verificare se nel codice sorgente (quello generato dall'echo, non quello visualizzato dal browser) i caratteri sono stampati correttamente. Se i caratteri sono presenti correttamente puoi:
- impostare lo charset della pagina web tramite il metatag:
codice:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- oppure se vuoi impostare l'uft-8 prima di mandare a video tramite echo devi filtrare le stringhe con htmlentities()... il chè in generale è quasi sempre consigliabile...
Codice PHP:
echo htmlentities('éèòàù');