Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/01/2010, 09:20
sonycrocket
 
Fecha de Ingreso: agosto-2008
Mensajes: 10
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: consulta mysql con LIKE devuelve vacio con simbolos

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&oacute;n','Telefonos','Acci&oacute;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 :)