Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/09/2012, 10:23
pedroparra
 
Fecha de Ingreso: abril-2011
Mensajes: 14
Antigüedad: 13 años, 1 mes
Puntos: 1
Pregunta Respuesta: Consulta sin importar tildes, mayusculas o minusculas

Cita:
Iniciado por jurena Ver Mensaje
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($resultMYSQLI_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??