Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mi buscador no muestra ecentos y ñ

Estas en el tema de Mi buscador no muestra ecentos y ñ en el foro de PHP en Foros del Web. Hola, En mi db inserto las tildes correctamente y en la tabla de mi php me muestra los acentos y la ñ perfectamente pero, al ...
  #1 (permalink)  
Antiguo 18/08/2015, 13:42
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Mi buscador no muestra ecentos y ñ

Hola,

En mi db inserto las tildes correctamente y en la tabla de mi php me muestra los acentos y la ñ perfectamente pero, al hacer una búsqueda, si en el buscador inserto la palabra que quiero buscar con acento, no me da ningún resultado pero, si la palabra a buscar la pongo sin acento si me la muaestra. Os pongo los script que utilizo:

La consulta a la base de datos:
Código PHP:
$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText utf8_encode($_REQUEST['search_text']);
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;

El buscador:

Código HTML:
Ver original
  1. <TD width="37%">
  2.                 <span class="Estilo2">Buscar</span>              
  3.                 <input type="text" name="search_text" value="<?php echo utf8_encode($searchText); ?>"/>             <input type="submit" value="Buscar" />                </TD>

Este es el script completo para que probéis:

http://www.wekin.es/pruebas/basedatos/basedatos.php

¿Alguien puede guiarme?

Graciasss
  #2 (permalink)  
Antiguo 18/08/2015, 13:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mi buscador no muestra ecentos y ñ

Cita:
si la palabra a buscar la pongo sin acento si me la muaestra
Entonces cometiste un error al guardar los datos, no es posible que sin acentos funcione si originalmente guardaste con acentos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/08/2015, 14:28
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Hola pateketrueke, gracias por responder.

Eso es lo que me preguntaba, ¿qué estoy haciendo mal?.

Después de conectar con la db le pongo el query:
Código PHP:
mysql_query("SET NAMES 'utf8'"); 
esto es para insertar en la db los acentos y ñ.

Los inserto de esta manera:
Código PHP:
  $insertSQL sprintf("INSERT INTO clientes (ID, nombre, apellidos, empresa, ciudad, telefono, email, fecha) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['ID'], "text"),
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['apellidos'], "text"),
                       
GetSQLValueString($_POST['empresa'], "text"),
                       
GetSQLValueString($_POST['ciudad'], "text"),
                       
GetSQLValueString($_POST['telefono'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['fecha'], "text")); 
  #4 (permalink)  
Antiguo 19/08/2015, 10:37
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Mi buscador no muestra ecentos y ñ

Eso parece un error de charset en tu archivo de conexión a la base de datos, coloca esto.

Debería estar así, este ejemplo funciona si estas usando todavía mysql

Código PHP:
Ver original
  1. $hostname_miweb = "localhost";
  2. $database_miweb = "paginaweb";
  3. $username_miweb = "root";
  4. $password_miweb = "134567890";
  5. mysql_pconnect($hostname_miweb, $username_miweb, $password_miweb) or trigger_error(mysql_error(),E_USER_ERROR);
  6. mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'",$miweb);
  #5 (permalink)  
Antiguo 19/08/2015, 11:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Desglosemos:
Cita:
En mi db inserto las tildes correctamente
Ok. Se insertan bien, según dices. ¿Lo comprobaste con el phpMyadmin?
Cita:
en la tabla de mi php me muestra los acentos y la ñ perfectamente
¿Como la obtienes? Es decir, ¿Luego de insertar, vuelves a leerla y la recibes bien? Si es así, no hay errores en los datos.
Cita:
pero, al hacer una búsqueda, si en el buscador inserto la palabra que quiero buscar con acento, no me da ningún resultado pero, si la palabra a buscar la pongo sin acento si me la muestra.
Según esto, el problema está sólo en la parte del buscador, que no es el INSERT... ¿Podrías postearnos la parte donde procesas la búsqueda y la mandas a la base?
¿Estás abriendo de la misma forma que antes la conexión, poniendo el SET NAMES = 'UTF8'?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 19/08/2015, 13:48
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Efectivamente gnzsoloyo, el problema está en el buscador.

mysql_query("SET NAMES 'utf8'") no lo pongo en la consulta porque si no, no devuelve las palabras con acentos y ñ correctamente sólo lo utilizo para insertar datos en la db.

Este es el script completo de la tabla que muestra los resultados de la db y del buscador:

Código PHP:
<?php
error_reporting
(E_ALL^E_NOTICE);
include(
'pagination_class.php');
mysql_connect('localhost''user''pass') or die(mysql_error());
mysql_select_db('db');

$headers "Content-type: text/html; charset=UTF-8";

?>
<script language="JavaScript" src="pagination.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<?


//ESTA ES LA ESTRUCTURA DEL BUSCADOR EN LA DB. UTILIZA LA VARIABLE "search_text".


$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText utf8_encode($_REQUEST['search_text']);
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;
}



//para la paginación
$starting=0;
$recpage 20;//número de registros por página
    
$obj = new pagination_class($qry,$starting,$recpage);        
$result $obj->result;

            
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css">
<!--
body {
    background-color: #FCEBD1;
}
.Estilo1 {color: #7A9801}
.Estilo2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #333333;
    font-weight: bold;
    font-size: 13px;
}
-->
</style><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Prueba Base Libros</title>

            <link href="estilos.css" rel="stylesheet" type="text/css" />
<body>

  <script language="JavaScript">
function confirmar(url){
if (!confirm("¿Estás seguro de que deseas eliminar el registro?")) {
return false;
}
else {
document.location= url;
return true;
}
}
</script>            
            
<form name="form1" action="basedatos.php" method="POST">
            
            <table border="0" align="center" width="1024">
            <tr>
              <TD colspan="2" rowspan="3"><img src="images/cabecera.jpg" alt="ImgCabecera" width="642" height="113" /></TD>
              <TD width="12%" colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="3">&nbsp;</TD>
              </tr>
            <tr>
              <TD width="37%">
                <span class="Estilo2">Buscar</span>              
                <input type="text" name="search_text" value="<?php echo utf8_encode($searchText); ?>"/>                <input type="submit" value="Buscar" />                  </TD>
              <TD width="51%"><span class="Estilo1"><a href="basedatos.php" class="link">Reiniciar </a>|<a href="ingresar.php" class="a:link"> Nuevo Registro </a>| <a href="exel.php" class="link"> Exportar a Excel</a></span></TD>
              <TD>&nbsp;</TD>
            </tr>
            <tr><TD colspan="3">
            
            <div id="page_contents">
              <table border="0" align="center" width="100%">
              
<tr class="titulos">
<td width="17">Id</td>
<td width="68">Nombre</td>
<td width="140">Apellidos</td>
<td width="140">Empresa</td>
<td width="101">Ciudad</td>
<td width="95">Tel&eacute;fono</td>
<td width="181">E-mail</td>
<td width="69">Fecha</td>
<td colspan="2">Operaciones</td>
</tr>
                <?
                
if(mysql_num_rows($result)!=0){
$counter $starting 1;
$headers "Content-type: text/html; charset=UTF-8";
while(
$data mysql_fetch_array($result)) {
              
    
printf("<tr class=letra_y_fondo_consulta >   
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>
    <td>%s</td>    
    </tr>"
utf8_encode ($data["ID"]), utf8_encode ($data["nombre"]), utf8_encode ($data["apellidos"]), utf8_encode ($data["empresa"]), utf8_encode ($data["ciudad"]), utf8_encode ($data["telefono"]), utf8_encode ($data["email"]), utf8_encode ($data["fecha"]));
        
?> 
  



<?

    


?>
                <tr>
                  <td colspan="4"><? echo $obj->anchors?></td>
                </tr>
                <tr>
                  <td colspan="4"><? echo $obj->total?></td>
                </tr>
                <?
                
}else{
                
?>
                <tr>
                  <td align="center" colspan="4">No hay datos disponibles</td>
                </tr>
                <?
                
}
                
?>
              </table>
            </div>
            </TD></tr>
  </table>
            <h6>&nbsp;</h6>
</form>
</body>
</html>

Última edición por Polu; 19/08/2015 a las 13:52 Razón: se me ha olvidado código
  #7 (permalink)  
Antiguo 19/08/2015, 14:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Cita:
mysql_query("SET NAMES 'utf8'") no lo pongo en la consulta porque si no, no devuelve las palabras con acentos y ñ correctamente sólo lo utilizo para insertar datos en la db.
La verdad es que eso que dices no me parece razonable...
¿Entiendes que si la configuración de la conexión de lectura no coincide con la conexión de escritura, no puede haber coincidencias?

¿Podrías postear una captura de pantalla con los datos que se visualizan con acentos y/o eñes en phpMyadmin, para ver qué es lo que la tabla tiene?
También sería buena idea que postearas otra captura de pantalla con la tabla de datos como la ves, sin uso de buscador (asumo que debes tener una vista con una lectura no filtrada), como para ver si un simple SELECT * devuelve bien los datos o en qué se diferencian.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 19/08/2015, 14:50
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

estas son las capturas:




enlace web:

http://www.wekin.es/pruebas/basedatos/basedatos.php
  #9 (permalink)  
Antiguo 19/08/2015, 20:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Bueno, por lo que se puede ver, el problema no es de datos, no es de INSERT, y no es con los SELECT... Como es evidente, la información se graba y se recupera correctamente.
Ahora bien, en tu buscador la cosa no funciona, es decir, no devuelve datos, pero entiendo que no dispara errores de sintaxis, por lo que se deduce que lo único que puede suceder es que las condiciones del WHERE no se están cumpliendo.

Partiendo de esa base, y remitiéndonos a tu código:

Código PHP:
Ver original
  1. $qry = "SELECT * FROM clientes ";
  2. $searchText = "";
  3. if($_REQUEST['search_text']!=""){
  4.     $searchText = utf8_encode($_REQUEST['search_text']);
  5.     $qry .=" where ID like '$searchText%'
  6.            or nombre like '$searchText%'
  7.            or apellidos like '$searchText%'  
  8.            or empresa like '$searchText%'
  9.            or ciudad like '$searchText%'
  10.            or telefono like '$searchText%'
  11.            or email like '$searchText%'
  12.            or fecha like '$searchText%'";
yo veo estas posibilidades:

1) No se cumplen las condiciones porque buscas un texto intermedio, o el final de un texto, pero no el comienzo de él. Esto se daría desde el momento en que los LIKE que usas en todos los casos están buscando lo que comience con el texto buscado, tenga lo que tenga el final.
En ese contexto, si buscases "oña", por ejemplo, no obtendrías resultados jamás dado que no hay ningun caso donde se cumpla. "Coña" n cuenta porque comienza con "C".
2) Se está corrompiendo el srting de la query, en esencia la idea es que lo que le llega MySQL no es lo que tu crees que le llega. Pero es algo que puedes verificar con un simple echo:
Código PHP:
Ver original
  1. $qry = "SELECT * FROM clientes ";
  2. $searchText = "";
  3. if($_REQUEST['search_text']!=""){
  4.     $searchText = utf8_encode($_REQUEST['search_text']);
  5.     $qry .=" where ID like '$searchText%'
  6.            or nombre like '$searchText%'
  7.            or apellidos like '$searchText%'  
  8.            or empresa like '$searchText%'
  9.            or ciudad like '$searchText%'
  10.            or telefono like '$searchText%'
  11.            or email like '$searchText%'
  12.            or fecha like '$searchText%'";
  13. echo $qry;
Agrega ese echo, ejecuta una busqueda como las que te fallan, poniendo el SET NAMES en UTF-8, y postea aqui lo que se muestra en pantalla. De acuerdo a lo que salga procederemos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 19/08/2015 a las 22:04
  #10 (permalink)  
Antiguo 20/08/2015, 08:19
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Nada, no sé lo que está pasando, no consigo comprenderlo.

Estas son las capturas de la prueba. Al poner el SET NAMES en UTF-8:



Con el echo $qry; añadido y buscando a Julián en el buscador:



Me niego a renunciar a las tildes y las ñsss

Última edición por Polu; 20/08/2015 a las 08:21 Razón: Se me olvidó la imagen
  #11 (permalink)  
Antiguo 20/08/2015, 09:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Quitale el utf8_encode y prueba de nuevo.

Código PHP:
Ver original
  1. $qry = "SELECT * FROM clientes ";
  2. $searchText = "";
  3. if($_REQUEST['search_text']!=""){
  4.     $searchText = $_REQUEST['search_text'];
  5.     $qry .=" where ID like '$searchText%'
  6.            or nombre like '$searchText%'
  7.            or apellidos like '$searchText%'  
  8.            or empresa like '$searchText%'
  9.            or ciudad like '$searchText%'
  10.            or telefono like '$searchText%'
  11.            or email like '$searchText%'
  12.            or fecha like '$searchText%'";
  13. echo $qry;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 20/08/2015, 11:14
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Ya se lo he quitado y este es el resultado:

Los datos que muestra al hacer la consulta:


Al buscar a Julián en el buscador:
  #13 (permalink)  
Antiguo 20/08/2015, 11:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Dije que lo quitaras del buscador, no del muestreo de la tabla general...

En definitiva, la cosa es como te dije: esa función está corrompiendo el string que se crea.
Ahora lo que debes hacer es:
1) Quitarlo de la linea donde tomas el valor obtenido en el formulario.
Código PHP:
Ver original
  1. $searchText = $_REQUEST['search_text'];

2) No modificar la lectura de datos recibidos... (la verdad no entiendo por qué tocaste esa parte).
Código PHP:
Ver original
  1. while($data = mysql_fetch_array($result)) {
  2.              
  3.     printf("<tr class=letra_y_fondo_consulta >  
  4.    <td>%s</td>
  5.    <td>%s</td>
  6.    <td>%s</td>
  7.    <td>%s</td>
  8.    <td>%s</td>
  9.    <td>%s</td>
  10.    <td>%s</td>
  11.    <td>%s</td>    
  12.    </tr>", utf8_encode ($data["ID"]), utf8_encode ($data["nombre"]), utf8_encode ($data["apellidos"]), utf8_encode ($data["empresa"]), utf8_encode ($data["ciudad"]), utf8_encode ($data["telefono"]), utf8_encode ($data["email"]), utf8_encode ($data["fecha"]));
Te recalco que yo en ningún momento te dije que lo quitaras de esta parte...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 20/08/2015, 11:53
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Lo he vuelto a dejar como estaba y con los cambios que me has dicho pero, no va:

Código PHP:
<?php
error_reporting
(E_ALL^E_NOTICE);
include(
'pagination_class.php');
mysql_connect('localhost''user''pass') or die(mysql_error());
mysql_select_db('db');
mysql_query("SET NAMES 'utf8'");

$headers "Content-type: text/html; charset=UTF-8";

?>
<script language="JavaScript" src="pagination.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<?


//ESTA ES LA ESTRUCTURA DEL BUSCADOR EN LA DB. UTILIZA LA VARIABLE "search_text".


$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText $_REQUEST['search_text'];
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;
echo 
$qry;
}



//para la paginación
$starting=0;
$recpage 20;//número de registros por página
    
$obj = new pagination_class($qry,$starting,$recpage);        
$result $obj->result;

            
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css">
<!--
body {
    background-color: #FCEBD1;
}
.Estilo1 {color: #7A9801}
.Estilo2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    color: #333333;
    font-weight: bold;
    font-size: 13px;
}
-->
</style><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Prueba Base Libros</title>

            <link href="estilos.css" rel="stylesheet" type="text/css" />
<body>

  <script language="JavaScript">
function confirmar(url){
if (!confirm("¿Estás seguro de que deseas eliminar el registro?")) {
return false;
}
else {
document.location= url;
return true;
}
}
</script>            
            
<form name="form1" action="basedatos.php" method="POST">
            
            <table border="0" align="center" width="1024">
            <tr>
              <TD colspan="2" rowspan="3"><img src="images/cabecera.jpg" alt="ImgCabecera" width="642" height="113" /></TD>
              <TD width="12%" colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="-1">&nbsp;</TD>
            </tr>
            <tr>
              <TD colspan="3">&nbsp;</TD>
              </tr>
            <tr>
              <TD width="37%">
                <span class="Estilo2">Buscar</span>              
                <input type="text" name="search_text" value="<?php echo ($searchText); ?>"/><input type="submit" value="Buscar" /></TD>
              <TD width="51%"><span class="Estilo1"><a href="basedatos.php" class="link">Reiniciar </a>|<a href="ingresar.php" class="a:link"> Nuevo Registro </a>| <a href="exel.php" class="link"> Exportar a Excel</a></span></TD>
              <TD>&nbsp;</TD>
            </tr>
            <tr><TD colspan="3">
            
            <div id="page_contents">
              <table border="0" align="center" width="100%">
              
<tr class="titulos">
<td width="17">Id</td>
<td width="68">Nombre</td>
<td width="140">Apellidos</td>
<td width="140">Empresa</td>
<td width="101">Ciudad</td>
<td width="95">Tel&eacute;fono</td>
<td width="181">E-mail</td>
<td width="69">Fecha</td>
<td colspan="2">Operaciones</td>
</tr>
                <?
                
if(mysql_num_rows($result)!=0){
$counter $starting 1;
while(
$data mysql_fetch_array($result)) {

$headers "Content-type: text/html; charset=UTF-8";

    
?>

    
<tr class="letra_y_fondo_consulta">
<td><? echo utf8_encode($data['ID']); ?></td>
<td><? echo utf8_encode($data['nombre']); ?></td>
<td><? echo utf8_encode($data['apellidos']); ?></td>
<td><? echo utf8_encode($data['empresa']); ?></td>
<td><? echo utf8_encode($data['ciudad']); ?></td>
<td><? echo utf8_encode($data['telefono']); ?></td>
<td><? echo utf8_encode($data['email']); ?></td>
<td><? echo utf8_encode($data['fecha']); ?></td>
<td width="35"><a href="modificar.php?ID=<?php echo $data['ID']; ?>">Modif</a></td>
<td width="35"><a href="javascript:;"onclick="confirmar('borrar.php?ID=<?php echo $data['ID']; ?>'); return false;">Elim</a></td>
</tr>
<?

    


?>
                <tr>
                  <td colspan="4"><? echo $obj->anchors?></td>
                </tr>
                <tr>
                  <td colspan="4"><? echo $obj->total?></td>
                </tr>
                <?
                
}else{
                
?>
                <tr>
                  <td align="center" colspan="4">No hay datos disponibles</td>
                </tr>
                <?
                
}
                
?>
              </table>
            </div>
            </TD></tr>
  </table>
            <h6>&nbsp;</h6>
</form>
</body>
</html>
  #15 (permalink)  
Antiguo 20/08/2015, 11:55
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Creo que el problema está aquí:

Código PHP:
              <TD width="37%">
                <span class="Estilo2">Buscar</span>              
                <input type="text" name="search_text" value="<?php echo ($searchText); ?>"/><input type="submit" value="Buscar" /></TD>
  #16 (permalink)  
Antiguo 20/08/2015, 11:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

¿TE das cuenta, por supuesto, que "no va", no representa información útil, no es así?

Muestra lo que se visualiza, repitiendo la última prueba hasta el detalle, y postea las capturas de pantalla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 20/08/2015, 12:15
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Capturas después de la modificación:

Los datos que muestra al hacer la consulta:


Al buscar a Julián en el buscador:

  #18 (permalink)  
Antiguo 20/08/2015, 12:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

¿QUé cambio introdujiste desde este caso:


A este caso?:


Algo cambiaste en la ejecución de la consulta general, no la del buscador, sino en la general...

Eso es lo que debes deshacer.

Como te dije en un momento dado, el error se producía al crear la consulta en SQL para el buscador, y era ALLI donde debías eliminar la función que la corrompía.

Evidencia de que yo estaba en lo cierto es que ahora la query viaja bien, y devuelve datos:



Cosa que antes no ocurría. El error ahora es otro que antes no estaba.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 20/08/2015, 12:25
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Tan solo he modificado la parte del buscador:

Código PHP:
$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText $_REQUEST['search_text'];
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;
echo 
$qry;

  #20 (permalink)  
Antiguo 20/08/2015, 12:35
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Perdona, también le quite el cotejamiento al form de la búsqueda:

Código PHP:
              <TD width="37%">
                <span class="Estilo2">Buscar</span>              
                <input type="text" name="search_text" value="<?php echo ($searchText); ?>"/><input type="submit" value="Buscar" /></TD>
antes estaba así:

Código PHP:
<?php echo utf8_encode($searchText); ?>
Ahora, Así:
Código PHP:
<?php echo ($searchText); ?>
Por eso ahora la query devuelve datos?, Pero sigue sin mostrar acentos...

http://www.wekin.es/pruebas/basedatos/basedatos.php
  #21 (permalink)  
Antiguo 20/08/2015, 12:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mi buscador no muestra ecentos y ñ

Cita:
Iniciado por Polu Ver Mensaje
Tan solo he modificado la parte del buscador:

Código PHP:
$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText $_REQUEST['search_text'];
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;
echo 
$qry;



Algo más cambiaste, porque antes se veía así:



Y modificar sólo la construcción de la consulta en SQL no puede haber afectado eso:

Código SQL:
Ver original
  1. SELECT * FROM clientes
  2. WHERE ID LIKE 'Julián%'
  3. OR nombre LIKE 'Julián%'
  4. OR apellidos LIKE 'Julián%'
  5. OR empresa LIKE 'Julián%'
  6. OR ciudad LIKE 'Julián%'
  7. OR telefono LIKE 'Julián%'
  8. OR email LIKE 'Julián%'
  9. OR fecha LIKE 'Julián%'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #22 (permalink)  
Antiguo 20/08/2015, 13:06
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Por favor adme caso, es por lo que te he dicho en el post Nº 20, acabo de probarlo para asegurarme.
  #23 (permalink)  
Antiguo 20/08/2015, 13:08
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Cita:
Iniciado por Polu Ver Mensaje
Por favor adme caso, es por lo que te he dicho en el post Nº 20, acabo de probarlo para asegurarme.
Lo de modificar y editar se lo quité y se lo he vuelto a poner pero, no es por eso

Si le quitamos el SET NAMES 'utf8, se vería con los acentos y ñ, como muestras en el post 21
  #24 (permalink)  
Antiguo 24/08/2015, 01:21
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: Mi buscador no muestra ecentos y ñ

Bueno... al final buscando por ahí, lo he podido solucionar.

He descodificado todas las cadenas con utf8_encode y he creado una función con una definición global para poder utilizarla en todo el contexto:

Estas funciones para conectar y desconectar con la db:

Código PHP:
function conectar(){
global 
$conexion;
$conexion mysql_connect('localhost''user''pass') or die(mysql_error());
mysql_select_db('db');
}
//$headers = "Content-type: text/html; charset=UTF-8";
function desconectar(){
global 
$conexion;
mysql_close($conexion); } 
Aquí utilizo la función "conectar" para indicar a la db que vamos a mostrar la información en utf8:

Código PHP:
conectar();
mysql_set_charset('utf8');

$qry "SELECT * FROM clientes ";
$searchText "";
if(
$_REQUEST['search_text']!=""){
    
$searchText = ($_REQUEST['search_text']);
    
$qry .=" where ID like '$searchText%' 
            or nombre like '$searchText%'
            or apellidos like '$searchText%'  
            or empresa like '$searchText%'
            or ciudad like '$searchText%'
            or telefono like '$searchText%'
            or email like '$searchText%'
            or fecha like '$searchText%'"
;

Y ya está, con esto me ahorro de codificar todas las cadenas con utf8_encode y me va todo perfecto .

Saludoss

Última edición por Polu; 24/08/2015 a las 01:35

Etiquetas: buscador, fecha, muestra, select, tabla
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 20:34.