cuando obtienes los datos en el php antes de introducir los datos utiliza las funciones utf8_encode.
Tambien puedes pasar esos caracteres a codigos html con htmlentities (creo).
Despues para mostrarlos si utilizaste la primera ahora utilizas la inversa utf8_decode y si utilizaste la segunda html_entity_decode
Ej:
Introducir datos
Código PHP:
$nombre=utf8_encode($_POST['nombre']);
Ver
Código PHP:
echo utf8_decode($nombre)
Ej2:
Introducir datos
Código PHP:
$nombre=htmlentities($_POST['nombre']);
ver
Código PHP:
echo html_entity_decode($nombre);
Por otro lado, aunque veas mal los caracteres desde phpmyadmin al mostrarlos en la pagina utiliza esto
Código PHP:
echo utf8_decode($nombre)
quizas ya los veas bien