Foros del Web » Programando para Internet » PHP »

Problemas con un select

Estas en el tema de Problemas con un select en el foro de PHP en Foros del Web. Hola, estoy haciendo un sitio en php de ventas online. Le he puesto filtros para ir reduciendo la cantidad de articulos para mostrar (los filtros ...
  #1 (permalink)  
Antiguo 03/01/2009, 18:48
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Sonrisa Problemas con un select

Hola, estoy haciendo un sitio en php de ventas online. Le he puesto filtros para ir reduciendo la cantidad de articulos para mostrar (los filtros son: Producto, metal color, piedra, corte, y precio), hasta aqui todo va bien, el problema esta en el filtro de precio, ya que los otros filtros los uso con AND color=$color AND piedra=$piedra, y el filtro de precio lo hago con WHERE precio BETWEEN $detanto And $atanto. En resumen queda asi :

("SELECT * FROM productos WHERE precio BETWEEN '$detanto' And '$atanto' AND color='$color' AND piedra='$piedra' ORDER BY id ASC")

esto funciona tambien como quiero, pero tambien tengo la opcion de pasar los precios a dolar y para esto lo que hago es dividir la cantidad entre 13 y con ello me dice cuantos dolares hay. Mi pregunta es: se puede hacer algo asi

("SELECT * FROM productos WHERE precio/13 BETWEEN '$detanto' And '$atanto' AND color='$color' AND piedra='$piedra' ORDER BY id ASC")

obvio esto no funciona pero quiero saber si hay algo que se pueda hacer.

De antemano gracias.
  #2 (permalink)  
Antiguo 03/01/2009, 19:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Problemas con un select

No, no hay manera de hacer eso directamete en el query, lo que puedes hacer es que si esta, por ejemplo un post de que el usuario quiere en dolares te divida cada resultado entre 13, te pongo un ejemplo:
Código PHP:
/*Suponiendo que tu post se llama dolares*/
if(isset($_POST['dolares'])){
    
$dolares $_POST['dolares'];
    while(
$row mysql_fetch_array($resultado_del_query)){
         
$precio $row['precio'] / 13;
    }

Eso te deberia de funcionar.

Saludos
  #3 (permalink)  
Antiguo 03/01/2009, 19:57
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Respuesta: Problemas con un select

Cita:
Iniciado por gilitos92 Ver Mensaje
No, no hay manera de hacer eso directamete en el query, lo que puedes hacer es que si esta, por ejemplo un post de que el usuario quiere en dolares te divida cada resultado entre 13, te pongo un ejemplo:
Código PHP:
/*Suponiendo que tu post se llama dolares*/
if(isset($_POST['dolares'])){
    
$dolares $_POST['dolares'];
    while(
$row mysql_fetch_array($resultado_del_query)){
         
$precio $row['precio'] / 13;
    }

Eso te deberia de funcionar.

Saludos
ok, pero el problema es que yo en mi base de datos tengo el precio en pesos MXN y al hacer la busqueda de 1 a 1000 MXN sale bien, pero al hacerla de 1 a 100 USD, obviamente me muestra los valores que tengan 1 a 100 pero MXN. Lo que estoy haciendo es esto.


Código PHP:
//$cambio=13 o $cambio=1 depende del usuario. 13 para pasar a dolar y 1 para que quede igual

$resultado=mysql_query("SELECT * productos WHERE.....");
if(
$row=mysql_fetch_array($resultado)){
do{
$row["precio"]=$row["precio"]/$cambio;
if(
$row["precio"]<$detanto && $row["precio"]<$atanto){
echo 
"$row[nombre] $row[precio]....";
}
//si esta entre los valores lo imprime, si no, no hace nada
}while($row=mysql_fetch_array($resultado));
}else{
echo 
"no se encontro el producto....";

La falla aqui es que si el select encuentra resultados y yo los omito con ese if no me devuelve error. y cuando le quiero poner el error, lo tengo que poner en el while y los productos q no imprimio los sustituye con el mensaje de error que se repite tantas veces como se omite. Por ello buscaba una alternativa en el SELECT. Voy a seguir googleando haber si encuentro una solucion o alternativa. Gracias
  #4 (permalink)  
Antiguo 04/01/2009, 15:35
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Respuesta: Problemas con un select

ya lo pude solucionar solo use el mysql_num_rows() y quite el BETWEN del query, y el resultado lo trate asi:

Código PHP:
$resultado=mysql_query("SELECT * productos WHERE.....");
$contador=0;
if(
$row=mysql_fetch_array($resultado)){ 
do{ 
$row["precio"]=$row["precio"]/$cambio
if(
$row["precio"]<$detanto && $row["precio"]<$atanto){ 
echo 
"$row[nombre] $row[precio]...."
}else{ 
$contador=$contador+1
}
//si esta entre los valores lo imprime, si no, no hace nada 
}while($row=mysql_fetch_array($resultado)); 
if(
$contador==mysql_num_rows($resultado)){
echo
"no se encontro shalala shalala";
}
} else{
echo
"no se encontro shalala shalala";

y asi aunque el select me devuelva un resource, verifico que si la cantidad de productos q devuelve es igual a la que omito con el if, muestro entonces el error de que no encontro..., gracias de todos modos.
  #5 (permalink)  
Antiguo 05/01/2009, 14:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Problemas con un select

No hay de que :)
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:16.