Cita:
Iniciado por jurena Es que los datos no están bien guardados. Quiero decir que aunque la base tenga la codificación adecuada, que la tiene, y los campos imagino que también, cuando pasas los datos mediante programación tanto el archivo php o html tienen codificación distinta y falta de etiquetas, y en la conexión tampoco uses SET NAMES('utf-8') tras seleccionar la base cuando se usa una conexión al modo clásico. Todo eso hace que lo que no se pueda consultar bien. Piensa que esa à no es ni i, ni í, ni I, ni Í, etc, es decir, o es un i, y por tanto de nada sirve una correcta codificación y el cotejamiento _ci que has usado y que es el adecuado para lo que quieres, utf8_spanish2_ci.
HOSTELERÃA Y TURISMO
Como parece que la codificación de la base la tienes bien, pide ayuda en el foro de tu programa para resolver el tema y verás que la codificación que elegiste es la adecuada para lo que quieres.
Gracias por tu respuesta. He solucionado el problema a medias. Aver si lo solucionamos de una vez. Esta es la situacion:
- Base de datos : (Ya cambié la forma en la que se guardan los datos quedando de la siguiente manera)
Código:
Tabla AREA
-----------------------------------------------
id -->43 - titulo --> EDIFICACIÓN
id -->44 - titulo --> ENERGÍAS RENOVABLES
------------------------------------------
CHARACTER SET utf8
COLLATE utf8_spanish2_ci
My script final:
Código PHP:
header('Content-Type: text/html; charset=UTF-8');
$busqueda = $_POST['busqueda'];
// Datos de conexion:
$mysqli = new mysqli($conection['server'], $conection['user'], $conection['pass'], $conection['base']);
if (mysqli_connect_errno()) { printf("Conexión fallida: %s\n", mysqli_connect_error()); exit(); }
@mysql_query("SET NAMES 'utf8'");
if($busqueda<>''){
$cadbusca = "SELECT id , titulo FROM area WHERE titulo LIKE '%".$busqueda."%'";
$result = mysqli_query($mysqli, $cadbusca) or die ("Error: ".mysqli_error($mysqli));
$row_cnt = mysqli_num_rows($result);
if($row_cnt>0){
echo "<p>Areas: </p><ul>";
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){ echo "<li><a href='cursos.php?idarea=".$row['id']."'>" . utf8_encode($row['titulo']) . "</a></li>";}
echo "</ul>";
}
}
De esta forma ocurre lo siguiente:
Buscando --> edificacion --> muestra el resultado correctamente -> EDIFICACIÓN
Buscando --> energias --> no encuentra ningun resultado.
Alguien sabe como hacer para que funcione correctamente??