Foros del Web » Programando para Internet » PHP »

Error con array en consulta sql

Estas en el tema de Error con array en consulta sql en el foro de PHP en Foros del Web. Buenas, Tengo un formulario para filtrar busquedas, con varios checkbox, los cuales juntoen el array name="estilo[]". Lo recojo en la variable $estilo. Los separo por ...
  #1 (permalink)  
Antiguo 30/11/2012, 06:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Error con array en consulta sql

Buenas,

Tengo un formulario para filtrar busquedas, con varios checkbox, los cuales juntoen el array name="estilo[]".

Lo recojo en la variable $estilo.
Los separo por comas para sualo en la busqueda con un IN

$estilo2 = join(',',$estilo);


Y realizo la consulta:

Código PHP:
Ver original
  1. $sqlv = "SELECT DISTINCT pared FROM vias WHERE zona='$nombrez' AND altura >= '$alturamin' AND grado <= '$gradomax' AND estilo IN('$estilo2')";


El echo de $sqlv es:

SELECT DISTINCT pared FROM vias WHERE zona='AAA' AND altura >= '0' AND grado <= '29' AND estilo IN('Classica,Deportiva,Psicobloc,Integral,Hielo')

El tema es que no encuentra resultados, pero si pongo en la consulta por ejemplo: estilo='Integral', entonces si que encuentra, por lo que no me esta haciendo bien el IN, pero no veo el error.

GRacias de antemano
  #2 (permalink)  
Antiguo 30/11/2012, 07:27
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Error con array en consulta sql

Tienes un error de sintaxis en el in, con los '

en vez de esto
estilo IN('Classica,Deportiva,Psicobloc,Integral,Hielo')

deberias ejecutar esto
estilo IN('Classica','Deportiva','Psicobloc','Integral',' Hielo')
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 30/11/2012, 07:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Error con array en consulta sql

I como hago para poner cada checkbox entre ' '?

Uno por uno con un for?


o con :


Código PHP:
Ver original
  1. $estilo2=  join('','',$estilo);
  2.  
  3. $estilo2= "'".$estilo2."'";
  #4 (permalink)  
Antiguo 30/11/2012, 11:40
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Error con array en consulta sql

Podrias hacer algo como

$estilo2= "''.implode("','",$estilo)."'";

(El join es un alias del implode)
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Etiquetas: formulario, sql, variables
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 00:05.