Foros del Web » Programando para Internet » PHP »

Error en Consulta Con Where y Like

Estas en el tema de Error en Consulta Con Where y Like en el foro de PHP en Foros del Web. Hola a todos como están, mi pregunta es la siguiente: Estoy haciendo un buscador en una libreria online en la cual se puede hacer una ...
  #1 (permalink)  
Antiguo 24/03/2010, 13:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Error en Consulta Con Where y Like

Hola a todos como están, mi pregunta es la siguiente:

Estoy haciendo un buscador en una libreria online en la cual se puede hacer una búsqueda ya sea por autor, ISBN ó título del libro. El usuario desplega esta lista y escoje una opcion y abajo en un campo de texto coloca la palabra a buscar.

A la lista la llame $tipobusqueda y al campo de texto lo llame $terminobusqueda. Lo que deseo es que el script me busque dicha palabra segun el tipo de busqueda. Este es el codigo que tengo hasta el momento y me aparece error en la consulta (la resalte con negrita), me podrian corregir donde esta el error, supongo que la setencia esta mal escrita. Muchas gracias por su ayuda.

<?php

include('conexion.php');

$tipobusqueda = $_POST['tipobusqueda'];
$terminobusqueda = trim($_POST['terminobusqueda']);

if($tipobusqueda==NULL || $terminobusqueda==NULL)
{
echo "No has introducido los detalles de búsqueda. Inténtalo de nuevo";
exit;
}
$tipobusqueda=addslashes($tipobusqueda);
$terminobusqueda=addslashes($terminobusqueda);

$consulta = "SELECT * FROM libros WHERE" ".$tipobusqueda." LIKE '% ".$terminobusqueda."%'";

$resultado = mysql_query($consulta);
$num_resultados=mysql_num_rows($resultado);
for($i=0; $i<$num_resultados;$i++){

$row=mysql_fetch_array($resultado);

}


?>
  #2 (permalink)  
Antiguo 24/03/2010, 13:22
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Error en Consulta Con Where y Like

¿Qué error?
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #3 (permalink)  
Antiguo 24/03/2010, 13:24
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Error en Consulta Con Where y Like

Comillas.. veo unas de mas en esa linea...
  #4 (permalink)  
Antiguo 24/03/2010, 13:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Error en Consulta Con Where y Like

Me aparece error de sintaxis, es precisamente lo que estoy preguntando, cual es el error en la consulta. Darsekas, me podrias informar como debe quedar dicha sentencia? Muchas gracias por tu ayuda.
  #5 (permalink)  
Antiguo 24/03/2010, 13:40
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Error en Consulta Con Where y Like

Bueno, no lo ví, pero quiere decir que quede así:

$consulta = "SELECT * FROM libros WHERE ".$tipobusqueda." LIKE '%".$terminobusqueda."%'";
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #6 (permalink)  
Antiguo 24/03/2010, 13:41
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: Error en Consulta Con Where y Like

Inmediatamente luego del WHERE, debería seguirle solo una doble comilla, no dos como se ve en tu código.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #7 (permalink)  
Antiguo 24/03/2010, 13:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Error en Consulta Con Where y Like

El error puede estar en las comillas. Además de eso, te doy otros consejos respecto al codigo:

1) Reemplazá addslashes() por mysql_real_escape_string()
2) Es mucho más facil recorrer el resultado reemplazando:
Código PHP:
Ver original
  1. for($i=0; $i<$num_resultados;$i++){
  2.    $row=mysql_fetch_array($resultado);
  3. }
Por esto:
Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($resultado)){
  2.    
  3. }

3) Utiliza comillas dobles (") solo si necesitas que PHP reconozca variables dentro de la cadena. En su lugar utiliza comillas simples (') ya que de esta forma PHP ignora el contenido del string y no parsea las variables, ahorrando mucho tiempo de procesamiento.

Saludos !!!
  #8 (permalink)  
Antiguo 25/03/2010, 07:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Error en Consulta Con Where y Like

¡¡¡MIL GRACIASSSSSS FOREROS!!!

lobo_php, darkasecas, spider_boy, cheru, de verdad que personas como Ustedes hacen de estas comunidades sitios grandes. Muchísimas gracias por su ayuda, he podido solucionar mi problema gracias a la colaboración de cada uno.

Cheru voy a seguir tus concejos con respeto a los addslashes, voy a intertar como lo corrijo porque al final los elimine con unos stripslashes, si algo yo te consulto si veo inconvenientes.

Etiquetas: Ninguno
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 16:08.