Foros del Web » Programando para Internet » PHP »

Buscando precios

Estas en el tema de Buscando precios en el foro de PHP en Foros del Web. Hola amigos, tengo tiempo tratando de realizar un código, pero ya no doy mas. Les platico mi problema. Tengo una base con los siguientes campos: ...
  #1 (permalink)  
Antiguo 23/03/2010, 16:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Buscando precios

Hola amigos, tengo tiempo tratando de realizar un código, pero ya no doy mas. Les platico mi problema. Tengo una base con los siguientes campos:

Id, codigo, pre1, pre2, pre3, pre4, pre5, preant, prenuevo, status

lo que quiero hacer es que mediante un form se envien 5 o 6 precios y en los resultados me aparezcan aquellos que tengan por lo menos 3 de esos precios, ejemplo:

Consulta 14.99 15.99 16.99 17.99 18.99 19.99

Registros

1.- 1, 0001, 15.99, 10.99, 18.99, 11.99, 9.99, 7.99, 32.99, 1
2.- 2, 0010, 15.99, 13.99, 16.99, 12.99, 19.99, 17.99, 2.99, 1
3.- 3, 0022, 1.99, 14.99, 18.99, 15.99, 29.99, 12.99 ,54.99, 1
4.- 4, 0342, 11.99, 7.99, 5.99, 21.99, 29.99, 27.99, 45.99, 1
5.- 5, 0015, 19.99, 15.99, 18.99, 14.99, 29.99, 47.99, 57.99, 1


Los resultados que me tendría que arrojar serian el 2 3 y 5.


2.- 2, 0010, 15.99, 13.99, 16.99,12.99, 19.99, 17.99, 2.99, 1
3.- 3, 0022, 1.99, 14.99, 18.99, 15.99, 29.99, 12.99, 54.99, 1
5.- 5, 0015, 19.99, 15.99, 18.99, 14.99, 29.99, 47.99, 57.99, 1


Cómo podría hacer esto?


Gracias de antemano
  #2 (permalink)  
Antiguo 23/03/2010, 16:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

En la consulta debes verificar usando la clausula de WHERE
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE pre1 = "14.99" OR pre2="15.99" OR pre3="16.99" ....
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 23/03/2010, 16:54
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Gracias por tu respuesta.

Pero no es lo que busco ya que si ejecutas esa consulta no te daría ningún resultado, ya que pre1, de acuerdo al ejemplo, no contiene nunca 14.99.
  #4 (permalink)  
Antiguo 23/03/2010, 17:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

Por eso el OR, el OR hace que si pre1 no tiene el resultado continua con el pre2 y si este no lo tiene continua con el pre3 y así sucesivamente, ¿lo intentaste o estas deduciendo?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 23/03/2010, 17:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Ya lo habia intentado de varias maneras, pero no me da lo que necesito, lo ultimo que intente es una consulta enorme, creo que debe haber una manera mas sencilla de hacerlo.

Código PHP:
$consulta"SELECT * FROM codigos WHERE  ((m1='$y1' or m1='$y2' or m1='$y3' or m1='$y4' or m1='$y5' or m1='$y6') and (m2='$y1' or m2='$y2' or m2='$y3' or m2='$y4' or m2='$y5' or m2='$y6')) or 
            ((m1='$y1' or m1='$y2' or m1='$y3' or m1='$y4' or m1='$y5' or m1='$y6') and (m3='$y1' or m3='$y2' or m3='$y3' or m3='$y4' or m3='$y5' or m3='$y6')) or ... 
algo parecido.

Saludos y nuevamente gracias

EDIT: $y1...$y6 contienen los valores que recupero del formulario.
  #6 (permalink)  
Antiguo 23/03/2010, 17:10
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

Pero no entiendo, ¿tu quieres verificar todos los valores que indicaste en todas las columnas o quieres verificar un valor especifico en cada columna especificamente?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 23/03/2010, 17:16
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Lo que quiero es que mediante un formulario se envíen 5 o 6 precios, y la consulta verifique que al menos 3 de esos precios estén dentro de los registros de la DB, los campos que contienen precios y donde la consulta se debe efectuar son pre1, pre2, pre3, pre4, pre5, preant, prenuevo.

Si la consulta encuentra al menos 3 precios me envie el código o el id del registro.


Me explico?


Gracias por el tiempo que te tomas.
  #8 (permalink)  
Antiguo 23/03/2010, 17:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

OK, pero mi pregunta es ¿si se debe verificar esos precios en cada uno de los campos o debe verificar en el primer campo el primer precio, en el segundo campo el segundo precio y así sucesivamente?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 23/03/2010, 17:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Debe verificar todos los precios en cada campo, ya que la forma en que los precios que se buscan nos serán los mismos.

En el ejemplo puse: 14.99 15.99 16.99 17.99 18.99 19.99

Pero podrían ser: 1.99 12.99 15.99 52.99 30.99 512.99, y de igual manera tendría que verificar que al menos 3 de ellos estuvieran en un registro de la BD.
  #10 (permalink)  
Antiguo 23/03/2010, 17:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

Existe una funcion llamada IN en mysql, solo debes ingresar la información en una variable y luego hacer el query, me refiero
Código PHP:
Ver original
  1. $v = "14.99,15.99,16.99,17.99,18.99,19.99";
  2. mysql_query("SELECT * FROM tabla WHERE pre1 IN($v) OR pre2 IN($v) OR pre3 IN($v) ......") or die(mysql_error());
Para más información sobre esta función mira este manual http://www.techonthenet.com/sql/in.php
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 24/03/2010, 09:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Gracias por tu ayuda lo voy a checar y les digo que pasa.
  #12 (permalink)  
Antiguo 24/03/2010, 11:24
 
Fecha de Ingreso: septiembre-2007
Mensajes: 15
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Buscando precios

Ok, veamos hice esta consulta:

Código PHP:
$yt "$y1,$y2,$y3,$y4,$y5,$y6";
$consulta"SELECT * FROM precios WHERE pre1 IN ('$yt') or pre2 IN('$yt') or pre3 IN('$yt') or pre4 IN('$yt') or preant IN('$yt') or prenuevo IN('$yt') ORDER BY id DESC";
$resultados mysql_query($consulta) or die(mysql_error()); 
y si me da los precios buscados, el problema es que me manda los que tengan mínimo un precio dentro del registro. Yo necesito que tengan mas de 3 ó 3. alguien me podría decir como hacerle?

Gracias
  #13 (permalink)  
Antiguo 24/03/2010, 11:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Buscando precios

Ok, ya ahí te sugiero que verifiques primero en el foro de MySQL con personas de más experiencia a ver si te indican si existe alguna función o alguna forma de lograr que verifique si al menos 3 columnas tienen la información usando MySQL solamente, si no hay forma de lograrlo en MySQL vienes aca y te orientamos como hacerlo con PHP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: precios, buscadores
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 20:05.