Foros del Web » Programando para Internet » PHP »

Como hacer varios <select> con valores de una tabla Mysql?

Estas en el tema de Como hacer varios <select> con valores de una tabla Mysql? en el foro de PHP en Foros del Web. Hola, buenos dias He estado buscando en varios lugares como solucionar esto y encontre aqui mismo este articulo: "Como hacer una lista desplegable (<select> ) ...
  #1 (permalink)  
Antiguo 08/02/2010, 11:06
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 2 meses
Puntos: 0
Como hacer varios <select> con valores de una tabla Mysql?

Hola, buenos dias
He estado buscando en varios lugares como solucionar esto y encontre aqui mismo este articulo:
"Como hacer una lista desplegable (<select> ) con valores de una tabla Mysql que dependa del valor seleccionado en la primera":
http://www.forosdelweb.com/664999-post108.html

Funciona muy bien pero el problema es que solo funciona para un select dependiente y yo quiero tener varios selects, se me ocurrio trabajarlo como array pero no se muy bien como.
Asi como esto es lo que busco:



Saludos y gracias
  #2 (permalink)  
Antiguo 08/02/2010, 11:46
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Como hacer varios <select> con valores de una tabla Mysql?

Pues si tienes selects independientes te conviene hacer consultas por separado.
Porque si lo deseas hacer en una sola consulta va a ser muy laborioso recorrerlo para generar los selects.
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 08/02/2010, 11:56
 
Fecha de Ingreso: agosto-2009
Ubicación: Lanzarote - Canarias
Mensajes: 57
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Como hacer varios <select> con valores de una tabla Mysql?

mm creo que haciendo <select name="tipo[]"> de esa manera queda en un array
  #4 (permalink)  
Antiguo 08/02/2010, 12:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 2
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Como hacer varios <select> con valores de una tabla Mysql?

Gracias por las respuestas.

Bueno el meollo del asunto es que el numero de selects es generado dinamicamente, por ejemplo ahí arriba puse $num_selects = 4, pero si pongo 2, 5, 3. salen 2, 5, 3 selects.

Adjunto el codigo por si sirve de algo:

Código PHP:
<?php
$num_selects 
4;
// si se ha pulsao el boton enviar ($enviado) se procesa el formulario ..
// Sino, se continua con el formulario y los nuevos valores de los Select ..
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda.

if (!empty($_POST['enviado'])){

// Procesar el formulario
echo "Procesando formulario:<br>";
echo 
"Recibido id_tabla_padre: ".$_POST['id_padre'][0]."<br>";
echo 
"Recibido id_tabla_hija: ".$_POST['id_hija'][0];

} else {

   
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());
   
mysql_select_db($basedatos$conexion) or die(mysql_error());

   
// Obtener el $id_padre del envio a si mismo del formulario ..
   
$id_padre=$_POST['id_padre'][0];

   
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
   
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
    for(
$i=0$i<$num_selects$i++){
   
// Formar Selec "Padre".
   
echo "<select name='id_padre[]' onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\"> Seleccione un Item </option>\n";

   
$SQLconsulta_padre="SELECT * FROM tabla_padre";
   
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());

   while(
$registro_padre=mysql_fetch_assoc($consulta_padre)){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($id_padre == $registro_padre['id']){
         echo 
"<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['item_texto']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id']."\">".$registro_padre['item_texto']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

   // Formar Select "Hijo"
   
echo "<select name='id_hija[]'>\n";

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
   // se muestra el mensaje de "seleccine un item" (del select padre).
   
if (!empty($id_padre)){

       
$SQLconsulta_hija="SELECT * FROM tabla_hija WHERE id_padre='$id_padre'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
       
if (mysql_num_rows($consulta_hija) != 0){
          While   (
$registro_hija=mysql_fetch_assoc($consulta_hija)){
            echo 
"<option value=\"".$registro_hija['id']."\">".$registro_hija['item_texto']."</option>\n";
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>";
    }

    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
    
    
echo "</select>\n\n<br>";
    }
    echo 
"<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo 
"</form>\n";

?>


Saludos

Última edición por Loudblast; 08/02/2010 a las 20:36
  #5 (permalink)  
Antiguo 08/02/2010, 20:55
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Como hacer varios <select> con valores de una tabla Mysql?

Esto les puede ser de utilidad.

http://www.formatoweb.com.ar/ajax/se..._3_niveles.php
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4

Etiquetas: mysql, tablas
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 04:32.