PHP - Actualizar SELECT

 
Vista:
sin imagen de perfil

Actualizar SELECT

Publicado por mendizalea (47 intervenciones) el 09/05/2013 23:54:29
Buenas noches,

Tengo la siguiente select para recoger datos de la base de datos:

SELECT * FROM Participantes WHERE IDCategoria = $CodCat

El resultado seria lo siguiente:

COMBO-BOX (Seleccionado todos)
PARTICIPANTE-----------CATEGORIA
participante 1--------------1
participante 2--------------2
participante 3--------------3
participante 4--------------2
participante 5--------------2
participante 6--------------3
participante 7--------------1
participante 8--------------2

Lo que quiero es que en el combo-box de arriba en el momento que el usuario seleccione la categoria 2 que actualice la variable $CodCat y realize la consulta nuevamente para mostrar el siguiente resultado:

COMBO-BOX (categoria 2)
PARTICIPANTE-----------CATEGORIA
participante 2--------------2
participante 4--------------2
participante 5--------------2
participante 8--------------2

Y claro esta, luego el usuario tendra opcion de elegir de nuevo que se muestren nuevamente todos los registros. No se si es posible realizarlo asi, o tendria que hacerlo de algun otro modo.

Muchas gracias
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

Actualizar SELECT

Publicado por Jon (5 intervenciones) el 10/05/2013 09:11:52
Hola mendizalea. Ya he contestado en el tema anterior pero te lo vuelvo a poner en este que no me cuesta nada:

Ahora si lo entiendo.
En base a eso, se me ocurren un par de posibles soluciones. Te propongo la que se vale únicamente del php, espero que te sirva:

Usando sólo esta página, se llama a si misma enviando la variable del formulario. Además he implementado algunas lineas para que el combobox deje seleccionada la opción que se ha elegido.

consulto.php
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
41
42
43
44
45
46
47
48
49
50
51
52
53
<html>
<?php
error_reporting(E_ALL & ~E_NOTICE);
#Conectamos con MySQL (en este caso es para un localhost)
$conexion = mysql_connect("localhost","root","")
or die ("Fallo en el establecimiento de la conexión");
 
#Seleccionamos la base de datos a utilizar
mysql_select_db("pruebas")
or die("Error en la selección de la base de datos");
?>
</head>
<body>
<form id="form1" action="consulto.php" method="post">
<SELECT NAME="cate" SIZE=1 onChange="">
<OPTION <?php if(!isset($_POST['cate']) || strcmp($_POST['cate'], 'Todos')==0){echo "selected "; } ?> VALUE="Todos">Todas las categorías</OPTION>
<OPTION <?php if(strcmp($_POST['cate'], 'nombreCategoria1')==0){ echo "selected "; } ?>VALUE="nombreCategoria1">categoría 1</OPTION>
<OPTION <?php if(strcmp($_POST['cate'], 'nombreCategoria2')==0){ echo "selected "; } ?>VALUE="nombreCategoria2">categoría 2</OPTION>
</SELECT>
<input type="submit" value="Buscar"/>
</form>
<?php
#Guardamos la variable enviada por POST#
if(!isset($_POST['cate'])|| strcmp($_POST['cate'], 'todas')==0 ){//Si aún no se ha usado el combo box o se ha seleccionado , muestra todos los resultados
$result = mysql_query ("select * from productos")
or die("Error en la consulta SQL");
}
else{  //Si se ha seleccionado alguna de las demás categorías, hace el filtro.
$cat=$_POST['cate'];
$result = mysql_query ("select * from productos where categoria = '$cat'" )
or die("Error en la consulta SQL");
}
?>
 
<table>
 
<?php
#Mostramos los resultados obtenidos dentro de una tabla
while( $row = mysql_fetch_array ( $result )) {
   echo "<tr>";
   echo "<td>".$row["id"]."</td>";
   echo "<td>".$row["nombre"]."</td>";
   echo "<tr>";
}
?>
</table>
</body>
 
</html>
<?php
#Cerramos la conexión con la base de datos
mysql_close($conexion);
?>


Un saludo y para cualquier cosa, no dudes en preguntar!
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

Actualizar SELECT

Publicado por mendizalea (47 intervenciones) el 10/05/2013 17:28:09
Muchas gracias por su respuesta. Me ha venido muy bien, lo unico he tenido que realizar una pequeña modificacion para poder completar el combo desde una consulta a la tabla mysql y algo se me esta escapando porque me falla un tema, os dejo el cambio que realice:

1
2
3
4
5
6
7
8
<form id="form1" action="tabla.php" method="post">
<SELECT NAME="cate" SIZE=1 onChange="submit()">
	<OPTION <?php if(!isset($_POST['cate']) || strcmp($_POST['cate'], 'todas')==0){echo "selected "; } ?> VALUE="todas">TODAS</OPTION>
	<?php while ($resCL = mysql_fetch_array($queCL)) { ?>
	<OPTION <?php if(strcmp($_POST['cate'], 'PROBLEMA')==0){ echo "selected "; } ?>VALUE="<?php echo $resCL['IDClaseT08']; ?>"><?php echo $resCL['NombreT08'];?></OPTION>
	<?php } ?>
</SELECT>
</form>


En el if, donde puse PROBLEMA , es donde tendría que mostrar el valor de $resCL['NombreT08'] pero no acabo resolverlo. Lo he intentado poner de varios modos pero nada.

Un saludo
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

Actualizar SELECT

Publicado por mendizalea (47 intervenciones) el 10/05/2013 22:06:31
Ya he resuelto, he guardado el resultado en una variable y luego he puesto la variable en el strcmp y todo correcto.

Ahora una ultima duda...podria poner 2 combos a la vez? Seria para poner otro de sexo, para listar chicos y chicas.

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