PHP - Resultados combobox

 
Vista:
sin imagen de perfil

Resultados combobox

Publicado por Felipe (3 intervenciones) el 06/11/2012 08:18:48
Hola a todos!!!

Primero de todo enhorabuena por el site

Tengo un problema al hacer una seleccion en el combobox.

Veamos!! tengo un archivo index.php donde aparecen una lista de objetos, al pulsar en los objetos se imprime, en productos.php, una lista relacionada con los objetos a través de un GET(recordID), hasta aquí ningún problema. el problema que tengo es cuando intento filtrar los productos, através de un combobox, a través del método GET(ResultSB) por precio ascendente o descentende,no me filtra los resultados obtenidos sino que me filtra el total de la tabla.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
require_once("conexion.php");
?>
<?php
$id = $_GET['recordID'];
$result = "SELECT * FROM esall WHERE esall.N3z ='$id' "
or die ("problemas en consulta:".mysql_error());
$res=mysql_db_query($bd, $result, $con);
?>
<?php $ids = $_GET['ResultSB']; ?>
 
<?php
 
switch ($ids) {
case 'Precio mas alto':
$res = mysql_query("SELECT * FROM esall ORDER BY precio ASC")
or die ("problemas en consulta:".mysql_error());
break;
case 'Precio mas bajo':
$res = mysql_query("SELECT * FROM esall ORDER BY precio DESC")
or die ("problemas en consulta:".mysql_error());
break;
} ?>
 
 
<form action="productos.php" method="GET">
<p>Ordenar por: <select name="ResultSB" id="ResultSB" onChange="this.form.submit() ">
<option> </option>
<option value="Precio mas alto">Precio m&aacute;s alto</option>
<option value="Precio mas bajo">Precio m&aacute;s bajo</option>
</select></p>
</form>
 
 
<?php
while($row=mysql_fetch_array($res))
{
echo $row["SEO"];
echo $row["Precio"] . '<br>';
} ?>


En conculsion, lo que necesito es que me ordene los productos/objetos imprimidos de la primera busqueda que provienen de index.php


Saludos y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Resultados combobox

Publicado por xve (6935 intervenciones) el 06/11/2012 08:53:21
Hola Felipe, creo que el problema lo tienes en el select...

cuando es por $_GET['recordID'] en el sql pones el where...
1
"SELECT * FROM esall WHERE esall.N3z ='$id'"


cuando lo haces por $_GET['ResultSB'] en el sql NO pones el where...
1
"SELECT * FROM esall ORDER BY precio ASC"


Prueba así:
1
"SELECT * FROM esall WHERE esall.N3z ='$ids' ORDER BY precio ASC"


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Resultados combobox

Publicado por Felipe (3 intervenciones) el 06/11/2012 09:34:47
Hola xve, gracias por las instrucciones, pero no me imprime nada, el resultado es el siguiente en el archivo productos.php :

<?php
require_once("conexion.php");
?>
<?php
$id = $_GET['recordID'];
$result = "SELECT * FROM esall WHERE esall.N3z ='$id' "
or die ("problemas en consulta:".mysql_error());
$res=mysql_db_query($bd, $result, $con);
//*proviene de index.php*//
?>


<?php
$ids = $_GET['ResultSB'];
//*proviene del combo box*//
?>

<?php
switch ($ids) {
case 'Precio_mas_alto':
$res = mysql_query("SELECT * FROM esall WHERE esall.N3z ='$ids' ORDER BY precio ASC")
or die ("problemas en consulta:".mysql_error());
break;
case 'Precio_mas_bajo':
$res = mysql_query("SELECT * FROM esall WHERE esall.N3z ='$ids' ORDER BY precio DESC")
or die ("problemas en consulta:".mysql_error());
break;
}?>


<body>
<center>
<form action="productos.php" method="GET">
<p>Ordenar por: <select name="ResultSB" id="ResultSB" onChange="this.form.submit() ">
<option> </option>
<option value="Precio_mas_alto">Precio m&aacute;s alto</option>
<option value="Precio_mas_bajo">Precio m&aacute;s bajo</option>
</select></p>
</form>


<?php
while($row=mysql_fetch_array($res))
{
echo $row["SEO"];
echo $row["Precio"] . '<br>';
} ?>
</center>
</body>


Tambien he probado con :
$res = mysql_query("SELECT * FROM esall WHERE esall.N3z ='$id' ORDER BY precio ASC")
y tampoco me imprime nada.
Por si sirve de ayuda cuando entro a través de index.php en metodo GET en la URL me parece : http://localhost/Prueba/productos.php?recordID=XXX, esta consulta se imprime sin problemas, el problema es cuando quiero ordenar esta consulta en la mismo archivo productos.php, cuando filtro con la consulta de arriba, en la URL me aparece : http://localhost/Prueba/productos.php?ResultSB=Precio_mas_bajo.
Estoy un poco perdido....

Por otra parte hay un errror que no se si es trascendente que siempre me aparece por el tipo de consulta que hago, que es: Deprecated: Function mysql_db_query() is deprecated in C:\wamp\www\Prueba....



Un saludo y muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar