Comunidad de diseño web y desarrollo en internet online

Mi buscador no muestra ecentos y ñ

Citar            
MensajeEscrito el 22 Ago 2015 06:50 am
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%'"; 
}

Formulario del buscador:

Código HTML :

<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>


Mi servidor utiliza php 5.4. Este es el script completo para que probéis:

[url=http://www.wekin.es/pruebas/basedatos/basedatos.php][/url]

¿Alguien puede guiarme?

Graciasss :?

Por Polu

11 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 22 Ago 2015 06:21 pm
Yo tengo entendido que en las bases de datos no debería guardarse ningun caracter con caracter especial...

NO lo he puesto a prueba.. pero si quieres intenta a ver q tal..

Supongamos q quieres guardar la palabra "montaña" en la base de datos la guardas "montaña"

en el <head> coloca este meta datos <meta charset="utf-8">

haces tu consulta y creo q deberia estar listo.

Saludos.

Por franqgeek

48 de clabLevel



Genero:Masculino  

Desarrollador Web

chrome
Citar            
MensajeEscrito el 23 Ago 2015 08:05 am
Hola franqgeek, gracias por contestar,

Efectivamente, si no guardo los caracteres especiales y los guardo como tú dices, no me da ningún problema, se mostrarían en el buscador perfectamente. Es un reto que me he propuesto a resolver. En prestashop se guardan y se rescatan de le db caracteres especiales y tengo curiosidad de cómo hacerlo, yo, le he puesto un query a mi conexión para que me inserte los caracteres especiales:

Código PHP :

mysql_query("SET NAMES 'utf8'");

Por Polu

11 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 24 Ago 2015 07:30 am
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 :wink:

Por Polu

11 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 25 Ago 2015 12:07 pm
La solución que has encontrado es la solución correcta.

Por DriverOp

Claber

2510 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.