Antes de poner el código y como me interesa demasiado poder resolver esto.. les voy a dejar unas imagenes para que vean o entiendan mejor que es lo que me pasa:
En esta les muestro que el livesearch tiene el mismo problema :P y que al poner Pena me sale Peña también.
Pero fijense cuando digito Peña.. nada.. usemos el boton buscar
Al usar el buscador con la palabra Peña.. Ups!
Pero si en lugar de eso ponemos Pena.. mismo comportamiento que el livesearch.
Ahora si, el código para que me puedan ayudar mejor:
en mi index.tpl
#############
Código HTML:
<form action="modules/paciente/search.php" method="post">
<div id="row">
<label for="paciente">Buscar paciente:</label><br />
<input type="text" id="paciente" name="txtPaciente" autocomplete="off" onkeyup="getData(this.value);" /> <input type="submit" class="button_buscar" value="" /><br />
<div id="ajaxresults"></div>
</div>
</form>
Es un simple formulario con una caja de texto y un boton de buscar, el cual tiene implementado un livesearch pero que no jode en nada.
en el search.php (posteado por el formulario al hacer click en buscar) , les deje comments en el codigo para que entiendan mejor :)
############
Código PHP:
$paciente = $_POST['txtPaciente'];
$datos_paciente = explode(' ', $paciente); //separa por espacio los nombres
$sql = "SELECT id,nombre,direccion,telefonos,email
FROM Paciente
WHERE nombre LIKE '%".$datos_paciente[0]."%'";
for($i=1; $i<count($datos_paciente); $i++)
{
$sql .= " AND nombre LIKE '%".$datos_paciente[$i]."%'";
}
$query = $DBLayer->query($sql); //me devuelve un array de objetos con los datos
$num_res = $DBLayer->count_result($query);
//cuando busco algo que tenga ñ num_res me vale 0 :(
if($num_res == 0)
{
$tpl->assign('flash_message',$helper->flash_message('warning', 'La búsqueda ha finalizado sin resultados.'));
}else
{
$cols = array('Nombre','Dirección','Telefonos','Acción');
$tpl->assign('table_head',$helper->make_table_head($cols));
}
//recorro el array de objetos
foreach($query as $paciente)
{
$tpl->newBlock('list_results');
$tpl->assign('paciente_nombre',$helper->text_encode($paciente->nombre));
$tpl->assign('paciente_direccion',$helper->text_encode($paciente->direccion));
$tpl->assign('paciente_telefonos',$helper->text_encode($paciente->telefonos));
$tpl->assign('paciente_email',$helper->text_encode($paciente->email));
}
Espero me puedan ayudar, como dije anteriormente todo lo tengo en UTF-8 , la BD también y probe con latin1 y con utf8_spanish_ci pero sigue igual.
Gracias de antemano :)