Foros del Web » Programando para Internet » PHP »

Duda sobre busqueda en PHP

Estas en el tema de Duda sobre busqueda en PHP en el foro de PHP en Foros del Web. Necesito hacer algo que es basico en php pero sorry no toy bien claro de como hacerlo, he leido unas cuantas cosas pero me lo ...
  #1 (permalink)  
Antiguo 18/11/2011, 14:24
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Duda sobre busqueda en PHP

Necesito hacer algo que es basico en php pero sorry no toy bien claro de como hacerlo, he leido unas cuantas cosas pero me lo complican explicandome, y creo que no debe ser tan dificil...

Mi pregunta es la siguiente:

Mira esa pagina, http://www.montires.com/tires_bysize.php yo necesito que cuando le coloques una size de goma y le des a buscar muestre todos los registros de ese size en cualquier marca si el cliente aun no ha seleccionado la marca, pero tambien quisiera que solo aparezca las marcas que el cliente elija en caso de que el cliente elija alguna marca en especifico.

TE VOY A RESUMIR UN POCO DEL CODIGO QUE ESTOY USANDO..

Código HTML:
Ver original
  1. <form method="get" action="">
  2. <label><input type="checkbox" name='brand[]' value="Falken">Falken</label>
  3. <label><input type="checkbox" name='brand[]' value="Aurora">Aurora</label>
  4. </form>

estos son los checkboxs solamente ya que esos son los que me estan dando problemas...

Código PHP:
$marca $_GET['brand'];

$busqueda "SELECT * FROM products WHERE pd_valor=$valor AND marca=$marca";
$resultados mysql_query($busqueda$enlace);
while(
$campo mysql_fetch_array($resultados)
{
echo 
"Aqui voy a mostrar los resultados";

aqui esta mi problema...

Creen que me pueden ayudar?

se los agradeceria mucho....
  #2 (permalink)  
Antiguo 18/11/2011, 14:38
Avatar de Akiracr  
Fecha de Ingreso: septiembre-2006
Mensajes: 114
Antigüedad: 17 años, 7 meses
Puntos: 3
Respuesta: Duda sobre busqueda en PHP

Ralmente no se cual es el problema, asumo que no tienes experiencia trabajando con formularios y SQL.

Lo primero que debes hacer en el script de php donde se ejecuta la consulta es obtener del Array $_GET el valor del size.

Segundo paso es buscar en la tabla de producto como se llama la columna correspondiente al size.

Tercer paso cuando creas la consulta agregar en el where si viene valor para size la condición de filtrado.

Ejemplo:

Código PHP:
Ver original
  1. $size = $_GET['campo_size'];
  2. $busqueda = "SELECT * FROM products WHERE pd_valor=$valor AND marca=$marca " . (strlen($size)>0? ' size=' . $size : '' ) ;
__________________
http://www.maxmendez.net/
  #3 (permalink)  
Antiguo 18/11/2011, 14:42
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Duda sobre busqueda en PHP

Gracias por el intento pero realmente, puede ser que no sea tan experto en busqueda, pero puedo manejar busqueda normales...

Mi problema es el siguiente:
Si un cliente selecciona varias marcas, como incluir esas marcas en el IN en la busqueda de manera que pueda mostrarme los registros en base a ese criterio, osea que incluyan todas esas marcas...

mi problema no es la busqueda del size, es la busqueda de las marcas si se agregan varias marcas... eso es todo...

Espero que me haya explicado bien...
  #4 (permalink)  
Antiguo 18/11/2011, 14:44
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Duda sobre busqueda en PHP

cambia en el form el action, en vez de get usa post y en el php en vez de $_GET usa $_POST

despues en el sql hay varios conceptos:

En el value de los check les envias como value un string el cual se va a buscar en la base de datos, yo por muchas cuestiones te recomiendo que el value sea el id que se relaciona en la base con ese valor de "goma", para que despues en el sql usas ids para buscar y no texto porque puede que el que le pases por post en el check no sea identicamente igual en la base de datos, pero bueno, siguiendo tu ejemplo en el sql cambiaria el where y el php quedaria algo asi:

Código PHP:
Ver original
  1. $marca = join(','$_POST['brand']);
  2.  
  3. $busqueda = "SELECT * FROM products WHERE pd_valor='" . $_POST['valor'] . "' AND marca IN (" . $marca . ")";

Fijate de modificar la parte de código que te mande y despues contame ;)

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 18/11/2011, 14:49
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Duda sobre busqueda en PHP

puesto que tienes un arreglo para enviar los cheboxs, te recomendaría mejor pasar los datos por POST.

Por otro lado, al hacer $marca = $_GET['brand']; estás recibiendo un arreglo, por lo que tienes que recorrer el arreglo para armar la consulta:

Código PHP:
Ver original
  1. foreach($marca as $n =>$val)
  2.   $consulta_marca[]="marca='$val'";
  3.  
  4. $consulta_marca=implode(" or ",$consulta_marca);
finalmente:
Código PHP:
Ver original
  1. $busqueda = "SELECT * FROM products WHERE pd_valor=$valor AND ($consulta_marca)";

claro que tendrás que validar que tu consulta por marca no esté vacía y otros ajustes, pero espero que te haya dado la idea.
  #6 (permalink)  
Antiguo 18/11/2011, 15:18
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Duda sobre busqueda en PHP

Muchas gracias por sus sugerencias,
a mi me gusta cuando hago una consulta hacerla por get por la cuestion de los envios de direccion, por ejemplo yo hago una busqueda aqui en mi pc y enviarte el link a ti que estas en otra pc y tu abrirla y te aparece justo la busqueda que yo hice, ya que esta almacenada la informacion en la url.

Si lo hago por post no puedo hacer eso... Ustedes creen que la unica manera de hacer eso es hacerlo por post? osea con Get no funciona?

Veo que los dos me mencionaron lo mismo...
  #7 (permalink)  
Antiguo 18/11/2011, 15:40
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Duda sobre busqueda en PHP

el tema no es en si si se puede o no. como poder se puede el tema es que es por seguridad que se pasan datos que formulan una consulta en una base de datos porque pasarla por url algo que impacta en una base de datos no es muy seguro que digamos. por eso nosotros te recomendamos que uses $_POST entendes? probalo aunque sea asi vemos si te funciona.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #8 (permalink)  
Antiguo 18/11/2011, 15:46
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Duda sobre busqueda en PHP

Ok... Lo probare dame un minuto!!!
  #9 (permalink)  
Antiguo 18/11/2011, 16:37
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Duda sobre busqueda en PHP

ocp001a tu respuesta fue un exito... eso es lo que queria....

Muchas gracias por eso....

Ya en busca de mejorar mas mi codigo quisiera que cuando seleccione checkee una marca se quede seleccionada y no se le quite el check al checkbox..

Gracias

Etiquetas: mysql, registro, busquedas
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 14:49.