Foros del Web » Programando para Internet » PHP »

Select incompatible con acentos

Estas en el tema de Select incompatible con acentos en el foro de PHP en Foros del Web. Saludos foreros! Me ha surgido un pequeño problema que escapa a mi conocimiento! Si me voy a phpmyadmin y realizo una consulta utilizando acentos funciona ...
  #1 (permalink)  
Antiguo 10/05/2013, 10:44
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Select incompatible con acentos

Saludos foreros!

Me ha surgido un pequeño problema que escapa a mi conocimiento!
Si me voy a phpmyadmin y realizo una consulta utilizando acentos funciona correctamente.
Si lo hago desde un formulario php+jQuery, es un filtro, no me muestra los resultados si le pongo acentos.

el charset que utilizo es iso-8859-1 en la página que muestra el resultado de la consulta.

Alguna idea??
  #2 (permalink)  
Antiguo 10/05/2013, 10:46
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Respuesta: Select incompatible con acentos

Todo depende del charset que tengas en la base de datos.

Prueba a realizar la consulta con:

Código PHP:
Ver original
  1. htmlentities($cadena_busqueda);
  2.  
  3. o
  4.  
  5. utf8_encode($cadena_busqueda);
;
  #3 (permalink)  
Antiguo 10/05/2013, 10:48
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Select incompatible con acentos

Cita:
Iniciado por pr0 Ver Mensaje
Prueba a realizar la consulta con:

Código PHP:
Ver original
  1. htmlentities($cadena_busqueda);
  2.  
  3. o
  4.  
  5. utf8_encode($cadena_busqueda);
;
Probaré, aunque la consulta lleva bastantes if, digamos que utilizo un filtro con 4 campos, por tanto han de combinarse si los relleno.

Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  3. $bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  4.    
  5. function generaClientes()
  6.     {
  7.     $link       =   mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
  8.     $bd         =   mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
  9.  
  10.         $nombre     =   $_POST['nombre'];
  11.         $provincia  =   $_POST['provincia'];
  12.         $poblacion  =   $_POST['poblacion'];
  13.         $cif        =   $_POST['cif']; 
  14.  
  15.            
  16.                        
  17. if ( !empty ($nombre) || !empty ($poblacion) || !empty ($provincia)|| !empty ($cif) ) {
  18.    
  19. $sql= " SELECT * FROM tabla WHERE ";                                                                //Empezar a crear la consulta:
  20.  
  21.     if ( !empty($nombre) && !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {        
  22.          $sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;  
  23.          }
  24.    
  25.     else if ( !empty($nombre) && !empty ($poblacion) && !empty ($cif) ) {                  
  26.      $sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  27.     }
  28.     else if ( !empty($nombre) && !empty ($cif) && !empty ($provincia) ) {                      
  29.      $sql .= " Nombre LIKE '%$nombre%' AND CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  30.     }
  31.     else if ( !empty($nombre) &&  !empty ($provincia) ) {  
  32.      $sql .= " Nombre LIKE '%$nombre%' AND Provincia LIKE '%$provincia%'";
  33.     }
  34.     else if ( !empty($nombre) &&  !empty ($cif) ) {  
  35.      $sql .= " Nombre LIKE '%$nombre%' AND CIF LIKE '%$cif%'";
  36.     }
  37.     else if ( !empty($nombre) &&  !empty ($poblacion) ) {  
  38.      $sql .= " Nombre LIKE '%$nombre%' AND Poblacion LIKE '%$poblacion%'";
  39.     }
  40.     else if ( !empty($nombre) ) {
  41.      $sql .= " Nombre LIKE '%$nombre%'";
  42.     }
  43.     else if ( !empty ($poblacion) && !empty ($provincia) && !empty ($cif) ) {          
  44.      $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%' AND CIF LIKE '%$cif%'" ;
  45.     }
  46.     else if ( !empty($poblacion) &&  !empty ($provincia) ) {  
  47.      $sql .= " Poblacion LIKE '%$poblacion%' AND Provincia LIKE '%$provincia%'";
  48.     }
  49.     else if ( !empty($poblacion) &&  !empty ($cif) ) {  
  50.      $sql .= " Poblacion LIKE '%$poblacion%' AND CIF LIKE '%$cif%'";
  51.     }
  52.     else if ( !empty($poblacion)) {  
  53.      $sql .= " Poblacion LIKE '%$poblacion%'";
  54.     }
  55.     else if ( !empty($cif) &&  !empty ($provincia) ) {  
  56.      $sql .= " CIF LIKE '%$cif%' AND Provincia LIKE '%$provincia%'";
  57.     }
  58.     else if ( !empty ($provincia) ) {  
  59.      $sql .= " Provincia LIKE '%$provincia%'";
  60.     }
  61.     else if ( !empty($cif) ) {  
  62.      $sql .= " CIF LIKE '%$cif%'";
  63.     }
  64. }
  65.         $sql .= "ORDER BY Nombre ASC";
  66.        
  67. $consulta = mysql_query ($sql) ;   //Hacer la consulta. ?>     
  68.    
  69. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  70. <html xmlns="http://www.w3.org/1999/xhtml">
  71. <head>
  72. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  73. </head>
  74.     <body>
  75.     <select name='clientes' size="5px">
  76.  
  77.     <?php
  78.         while($registro=mysql_fetch_assoc($consulta))
  79.             {?>
  80.             <option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Poblacion']," ",                                            $registro['Provincia'];  ?></option>
  81.    
  82.         <?php
  83.             }
  84.         ?>
  85.    
  86.    </select>
  87.  
  88.     <?php
  89.         }
  90.     ?> 
  91.  
  92.  
  93.  
  94.     <br />
  95.     <br />
  96.         <?php generaClientes(); ?>
  97. </body></html

Etiquetas: acentos, formulario, incompatible, resultados, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:50.