Foros del Web » Programando para Internet » PHP »

lio con script

Estas en el tema de lio con script en el foro de PHP en Foros del Web. hola chicos, mirad, he hecho este script para buscar palabras en mi base de datos, como se puede hacer para que no diferencie entre mayusculas ...
  #1 (permalink)  
Antiguo 09/11/2002, 12:00
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 15 años, 1 mes
Puntos: 0
lio con script

hola chicos, mirad, he hecho este script para buscar palabras en mi base de datos, como se puede hacer para que no diferencie entre mayusculas y minusculas?? esq cn esto la palabra que meta en el form tiene q estar igual escrita a la que este en la base de datos.

Código PHP:
<?
include("funciones.php");
$link=Conectarse();
if (isset(
$pal)){
    
$result=mysql_db_query("proyecto","select * from noticias");
    while(
$row=mysql_fetch_array($result)){
        
$pos strpos($row[titulo], $pal);
        if (
$pos === false) {
            
$posres=strpos($row[resumen],$pal);
            if(
$posres===false){
                
$postext=strpos($row[texto],$pal);
                if(
$posres===false){
                }else{
                echo 
"<a href=vernot.php?id=$row[id]>$row[titulo]</a><br>";
                }
            }else{
                echo 
"<a href=vernot.php?id=$row[id]>$row[titulo]</a><br>";
            }
        }else{
            echo 
"<a href=vernot.php?id=$row[id]>$row[titulo]</a><br>";
        }
    }
}else{
    echo 
"Escribe algo para buscar";
}
?>
<form method="post" action="buscar.php">
<INPUT TYPE="text" NAME="pal">
<INPUT TYPE="submit" value="Buscar">
</form>
  #2 (permalink)  
Antiguo 09/11/2002, 13:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La forma que estas empleando no es del todo optima:

$result=mysql_db_query("proyecto","select * from noticias");

Tienes que usar SQL correctamente .. eso evitará que leas TODA la base de datos (esa tabla noticias) para luego via PHP ir filtrando los registros que no tengan esa palabra ...

Código PHP:
$result=mysql_db_query("proyecto","select * from noticias WHERE titulo LIKE '%$pal%'"); 
Con esa instrucción SQL (clausula WHERE y LIKE junto con los wilcards (comodines) % ) .. generas SOLO un resultado de los registros q contengan esa $pal en el campo titulo de tu tabla noticias ...

Con esa lista de registros .. (la propia consulta) .. y de la misma forma habitual q usas para presentar una consulta tipo SELECT * FROM tabla .. presentas los resultados de la busqueda ...

El tema de "case sensitive" (sensible a mayusculas o minusculas) .. En Mysql lo define el tipo de dato que uses para ese campo de la tabla en concreto los "atributos" el cual debe ser BINARY .

Edita las propiedades de tu tabla noticia .. ves al campo titulo y modifica el atributo (con phpmyadmin lo puedes hacer rapido y facil ..).

Si aun así quieres usar tu "código" para hacer esas busquedas .. pasa a minusculas (o mayusculas) tu $pal y el $row[titulo] con las funciones strtolower() o strtoupper() .. y haces la comparación con ambas variables a minusculas o mayusculas.

Un saludo,
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 06:29.