Foros del Web » Programando para Internet » PHP »

Problema con consulta a una base de datos

Estas en el tema de Problema con consulta a una base de datos en el foro de PHP en Foros del Web. En una consulta utilizando un buscador quiero que me busque dentro de un campo concreto todo donde descripcion sea similar a la búsqueda Tengo la ...
  #1 (permalink)  
Antiguo 09/02/2014, 08:29
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Problema con consulta a una base de datos

En una consulta utilizando un buscador quiero que me busque dentro de un campo concreto todo donde descripcion sea similar a la búsqueda

Tengo la siguiente consulta:


Código PHP:
$rst_form=mysql_query("SELECT * FROM form WHERE seccion = 'Moda' AND descripcion LIKE '%".$busca."%' $tip $zon $order "); 
Lo que en verdad quiero es que me muestre del campo 'Moda' los que contengan alguna palabra como la del buscador. OJO Sólo los que contengan alguna palabra que coincida con el contenido de $busca.

Creo que el problema es que al tener antes el
Código PHP:
SELECT FROM form WHERE seccion 'Moda' 
pues me muestra TODO y no los que coinciden con $busca dentro del campo 'Moda'


No se si me e dado a entender bien jeje GRACIAS
  #2 (permalink)  
Antiguo 09/02/2014, 12:59
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Problema con consulta a una base de datos

Código PHP:
Ver original
  1. "SELECT * FROM tabla WHERE campo ' LIKE '%".$cadena."%';"
  #3 (permalink)  
Antiguo 10/02/2014, 11:25
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta a una base de datos

Ya pero es que precisamente lo que quiero es que busque pero con otras condiciones de campos en el select como os muestro arriba, es decir:


Código PHP:
Ver original
  1. $rst_form=mysql_query("SELECT * FROM form WHERE seccion = 'Moda' AND descripcion LIKE '%".$busca."%' $tip $zon $order ");


Es decir que se cumpla:
Código PHP:
Ver original
  1. descripcion LIKE '%".$busca."%'

Pero que también se cumpla:
Código PHP:
Ver original
  1. seccion = 'Moda'


Gracias!
  #4 (permalink)  
Antiguo 10/02/2014, 11:38
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Problema con consulta a una base de datos

Hay que revisar que otras condiciones estas manejando en $tip $zon. para estos casos y para agilizar las busquedas hago uso de las funciones de texto completo (Full-Text) en mysql.

solo debes crear los campos en las tablas que deseas hacer la búsqueda como un indice de tipo FULLTEXT. aqui hay mas información

http://dev.mysql.com/doc/refman/5.0/...xt-search.html
  #5 (permalink)  
Antiguo 10/02/2014, 12:45
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta a una base de datos

$tip es un una comparación que puede ser de 3 clases una de ellas sería por ejemplo (AND tipo= 'DEMANDA') y $zon es igual pero por zonas (AND zona = 'Madrid')

Ambos ($tip, $zon) varían en su contenido según lo seleccionado por el visitante de la web.
  #6 (permalink)  
Antiguo 15/02/2014, 09:12
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta a una base de datos

Acabo de estar provando a invertir el orden de la consulta pero el resultado es el mismo, es decir ahora lo e intentado así:

Código PHP:
Ver original
  1. $rst_form=mysql_query("SELECT * FROM form WHERE descripcion LIKE '%".$busca."%' AND seccion = 'Moda' $tip $zon $order ");


Me temo que sigue igual...¿Nadie tiene idea?...GRACIAS
  #7 (permalink)  
Antiguo 15/02/2014, 09:38
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, 5 meses
Puntos: 2658
Respuesta: Problema con consulta a una base de datos

Lo primero que debes hacer es ver qué es lo que queda realmente armado como consulta:
Código PHP:
// No generes directamente en la función el SQL. No es buena práctica.
$qry "SELECT * FROM form WHERE descripcion LIKE '%".$busca."%' AND seccion = 'Moda' $tip $zon $order ";
// mostrar la query en pantalla
echo $qry;

$rst_form=mysql_query($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)
  #8 (permalink)  
Antiguo 15/02/2014, 10:21
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta a una base de datos

No me muestra la consulta al poner lo que me dices.

Además si esque cuando le doy al boton buscar no me da ningun error, me muestra simplemente todo
  #9 (permalink)  
Antiguo 15/02/2014, 13:26
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, 5 meses
Puntos: 2658
Respuesta: Problema con consulta a una base de datos

Me estás diciendo que al hacer esto:
Código PHP:
$qry "SELECT * FROM form WHERE descripcion LIKE '%".$busca."%' AND seccion = 'Moda' $tip $zon $order ";
// mostrar la query en pantalla
echo $qry
¿No muestra nada en la pantalla?



¿Podrías postear el código completo del script, al menos el de la parte que gestiona esta consulta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 16/02/2014, 08:31
Avatar de angel_xx_1990  
Fecha de Ingreso: junio-2013
Ubicación: Guadalajara
Mensajes: 236
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con consulta a una base de datos

Bien os voy a postar todo el código de mis consultas:


Código PHP:
Ver original
  1. //Consultas con todo
  2.  
  3. if ($sel=="Todos los artículos" and $busca== "")
  4. {  
  5.     $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' $tip $zon $order ");
  6.     $num_rows=mysql_num_rows($rst_form);
  7.  
  8.        
  9. $registros = 15;
  10. if (is_numeric($pagina)){
  11. $inicio= (($pagina-1)*$registros);
  12. }else{
  13. $inicio= 0;}
  14.    
  15. $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' $tip $zon $order LIMIT $inicio,$registros;");
  16.    
  17. $paginas = ceil ($num_rows/$registros);
  18.        
  19. }
  20. elseif ($sel=="Hombre - Ropa" or "Hombre - Complementos" or "Hombre - Calzado" or "Mujer - Ropa" or "Mujer - Complementos" or "Mujer - Calzado" or "Niñ@s" and $busca== ""){
  21.    
  22.     $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' AND apartado1 = '$sel' $tip $zon $order");
  23.     $num_rows=mysql_num_rows($rst_form);
  24.    
  25. $registros = 15;
  26. if (is_numeric($pagina)){
  27. $inicio= (($pagina-1)*$registros);
  28. }else{
  29. $inicio= 0;}
  30.    
  31. $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' AND apartado1 = '$sel' $tip $zon $order LIMIT $inicio,$registros;");
  32.    
  33. $paginas = ceil ($num_rows/$registros);
  34.        
  35.    
  36. }
  37.  
  38.  
  39. //Consultas con buscador
  40.  
  41. elseif ($sel=="Todos los artículos" and $busca!= "") { 
  42.     $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' AND descripcion LIKE '%".$busca."%' $tip $zon $order ");
  43.     $num_rows=mysql_num_rows($rst_form);
  44.  
  45.        
  46. $registros = 15;
  47. if (is_numeric($pagina)){
  48. $inicio= (($pagina-1)*$registros);
  49. }else{
  50. $inicio= 0;}
  51.    
  52. $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' AND descripcion LIKE '%".$busca."%' $tip $zon $order LIMIT $inicio,$registros;");
  53.    
  54. $paginas = ceil ($num_rows/$registros);
  55.  
  56. }
  57. elseif ($sel=="Hombre - Ropa" or "Hombre - Complementos" or "Hombre - Calzado" or "Mujer - Ropa" or "Mujer - Complementos" or "Mujer - Calzado" or "Niñ@s" and $busca!= ""){
  58.    
  59.     $rst_form=mysql_query("SELECT * FROM table WHERE seccion = 'Moda' AND apartado1 = '$sel' AND descripcion LIKE '%".$busca."%' $tip $zon $order");
  60.     $num_rows=mysql_num_rows($rst_form);
  61.    
  62. $registros = 15;
  63. if (is_numeric($pagina)){
  64. $inicio= (($pagina-1)*$registros);
  65. }else{
  66. $inicio= 0;}
  67.    
  68. $rst_form=mysql_query("SELECT * FROM table WHERE  seccion = 'Moda' AND apartado1 = '$sel' AND descripcion LIKE '%".$busca."%' $tip $zon $order LIMIT $inicio,$registros;");
  69.    
  70. $paginas = ceil ($num_rows/$registros);
  71.        
  72.    
  73. }

Etiquetas: select, sql
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 12:25.