Foros del Web » Programando para Internet » PHP »

Buscado no distingue mayusculas y minusculas!!

Estas en el tema de Buscado no distingue mayusculas y minusculas!! en el foro de PHP en Foros del Web. Hola! Cuando pongo una palabra en el buscador me distingue mayusculas y minusculas y me gustaría que no distinguiera, por ejemplo si yo pongo: uptempo ...
  #1 (permalink)  
Antiguo 19/02/2010, 13:09
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Buscado no distingue mayusculas y minusculas!!

Hola! Cuando pongo una palabra en el buscador me distingue mayusculas y minusculas y me gustaría que no distinguiera, por ejemplo si yo pongo:
uptempo
me dice que no se encuentran resultados
y si pongo:
Uptempo
que es como se llama el campo, si que lo encuentra

La base de datos la tengo en: utf8_general_ci
Y no encuentro el problema, a ver si me podeis hechar una mano, muchas gracias!

Código:
<?php
if ($_POST['nom'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];

// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
// Conexión a la base de datos y seleccion de registros
include "conex.php";
$sql = "SELECT * FROM disco WHERE CONCAT( nom, sello, ref, any, prod, song) like '%$buscar%' ORDER BY nom DESC";
mysql_select_db("probando", $link);

$result = mysql_query($sql, $link);

// Tomamos el total de los resultados
$total = mysql_num_rows($result);




// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<br>
</font> <font face="Verdana">
<p> <font color="#FFFFFF" size="2"> <b> </b></font></p>
</font>
<?php

echo "<table border='0' width='100%'>";
echo "<tr>";
echo "<td bgcolor='#CC3300'>";
echo "<font face='Verdana' color='#FFFFFF' size='2'>";
echo "<b><a href='disco.php?nom=".$row['nom']."'>".$row['nom']."</a></b>";
echo "</font>";
echo "<br>";
echo "<font face='Verdana' color='#FFFFFF' size='1'>";
echo "<b>Productores: </b>".$row['prod']." <b>Sello discográfico: </b>".$row['sello']." <b>Año: </b>".$row['any']." <b>Referencia: </b>".$row['ref']."";
echo "<br>";
echo "<b>Tracklist: </b>".$row['song']."";
echo "</font>";
echo "</td>";
echo "</tr>";
echo "</table>";
?>

<font face="Verdana" color="#FFFFFF" size="2">
<?php
} while ($row = mysql_fetch_array($result));
echo "<p>$total resultados encontrados</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
}
}
?>
  #2 (permalink)  
Antiguo 19/02/2010, 13:21
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Buscado no distingue mayusculas y minusculas!!

Aquí tienes un ejemplo de como hacerlo

SELECT user
FROM users
WHERE UPPER( user ) = UPPER( 'oliver' );
  #3 (permalink)  
Antiguo 19/02/2010, 13:24
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Buscado no distingue mayusculas y minusculas!!

ME da el siguiente error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\probando\nom.php on line 29

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\probando\nom.php on line 35


Código:
$sql = "SELECT * FROM disco WHERE UPPER( nom, sello, ref, any, prod, song) = UPPER('%$buscar%') ORDER BY nom DESC";
  #4 (permalink)  
Antiguo 19/02/2010, 13:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Buscado no distingue mayusculas y minusculas!!

esta mal echa la consulta

Código PHP:
$sql "SELECT * FROM disco WHERE UPPER(nom) LIKE UPPER('%$buscar%') ORDER BY nom DESC"
si quieres comparar con todos los campos usa el operador OR
  #5 (permalink)  
Antiguo 19/02/2010, 13:28
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Buscado no distingue mayusculas y minusculas!!

Hombre, es que lo estás poniendo mal:

Esto es lo que has escrito:

$sql = "SELECT * FROM disco WHERE
UPPER( nom, sello, ref, any, prod, song) = UPPER('%$buscar%') ORDER BY nom DESC";

Y debería ser así:
$sql = "SELECT * FROM disco WHERE
UPPER(nom) = UPPER('%$buscar%') ORDER BY nom DESC";
  #6 (permalink)  
Antiguo 19/02/2010, 13:33
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Buscado no distingue mayusculas y minusculas!!

Cita:
Iniciado por Teosanchez Ver Mensaje
Hombre, es que lo estás poniendo mal:

Esto es lo que has escrito:

$sql = "SELECT * FROM disco WHERE
UPPER( nom, sello, ref, any, prod, song) = UPPER('%$buscar%') ORDER BY nom DESC";

Y debería ser así:
$sql = "SELECT * FROM disco WHERE
UPPER(nom) = UPPER('%$buscar%') ORDER BY nom DESC";

Si pero yo quiero que me busque en los campos nom, sello, etc...
  #7 (permalink)  
Antiguo 19/02/2010, 13:38
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Buscado no distingue mayusculas y minusculas!!

Cita:
Iniciado por Death_Empire Ver Mensaje
esta mal echa la consulta

Código PHP:
$sql "SELECT * FROM disco WHERE UPPER(nom) LIKE UPPER('%$buscar%') ORDER BY nom DESC"
si quieres comparar con todos los campos usa el operador OR
Así si que me lo muestra pero como y donde pongo el OR? porque yo lo he hecho así y no me encuentra nada
Código:
 $sql = "SELECT * FROM disco WHERE UPPER(nom or sello or ref or any or prod or song) LIKE UPPER('%$buscar%') ORDER BY nom DESC";
  #8 (permalink)  
Antiguo 19/02/2010, 13:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Buscado no distingue mayusculas y minusculas!!

asi, tienes que completar con las que faltan
Código PHP:
$sql "SELECT * FROM disco WHERE UPPER(nom) LIKE UPPER('%$buscar%') OR UPPER(sello) LIKE UPPER('%$buscar%') ORDER BY nom DESC"
  #9 (permalink)  
Antiguo 19/02/2010, 13:44
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Buscado no distingue mayusculas y minusculas!!

Código SQL:
Ver original
  1. $sql = "SELECT * FROM disco WHERE UPPER(nom) or UPPER(sello) or UPPER(ref) or UPPER(any) or UPPER(prod) or song) LIKE UPPER('%$buscar%') ORDER BY nom DESC";
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #10 (permalink)  
Antiguo 19/02/2010, 13:49
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Buscado no distingue mayusculas y minusculas!!

con un indice fulltext te evitarias problemas (si trabajas en myisam)
__________________
Quitenme la vida pero no la bebida.
  #11 (permalink)  
Antiguo 19/02/2010, 13:55
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Buscado no distingue mayusculas y minusculas!!

Cita:
Iniciado por spider_boy Ver Mensaje
Código SQL:
Ver original
  1. $sql = "SELECT * FROM disco WHERE UPPER(nom) or UPPER(sello) or UPPER(ref) or UPPER(any) or UPPER(prod) or song) LIKE UPPER('%$buscar%') ORDER BY nom DESC";

Grandioso! Ya funciona a la perfección!! Muchisimas gracias a todos!!! :D
  #12 (permalink)  
Antiguo 19/02/2010, 16:12
 
Fecha de Ingreso: marzo-2006
Mensajes: 13
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Buscado no distingue mayusculas y minusculas!!

He conseguido mejorarlo :D

Código:
"SELECT * FROM disco WHERE ref LIKE \"%$buscar%\" OR nom LIKE \"%$buscar%\" OR sello LIKE \"$buscar%\" OR any LIKE \"%$buscar%\" OR prod LIKE \"%$buscar%\" OR song LIKE \"%$buscar%\" ORDER BY nom DESC"

Etiquetas: mayusculas, minusculas
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 03:36.