Foros del Web » Programando para Internet » PHP »

Cargar campos en un Combo

Estas en el tema de Cargar campos en un Combo en el foro de PHP en Foros del Web. Hola. Tengo un combobox y quisiera cargar los datos de una tabla en ella. Es decir, que se me carguen los usuarios de la tabla ...
  #1 (permalink)  
Antiguo 14/03/2006, 04:44
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 3
Cargar campos en un Combo

Hola.

Tengo un combobox y quisiera cargar los datos de una tabla en ella. Es decir, que se me carguen los usuarios de la tabla en el combo para que al elegir uno de ellos y pulsar eliminar me lo elimine.

El código es el siguiente:

Código PHP:
$result=mysql_query("select * from tbl_usuario order by usuario");
                    
$campo=mysql_fetch_assoc($result);
                    
$num_reg=mysql_num_rows($result); //Obtengo el número de registros de la tabla
                      
echo "<select class='fondoControlesFormulario' name='select' id='usuarios'>";
                    
$cont=1//Contador para recorrer la tabla
                    
while ($cont<=$num_reg){
                        echo 
"<option value=' '>  </option>";
                        
$cont=$cont+1//incremento el contador                
                    
}
                    
mysql_close($conn); //Cierro la conexión
                      
echo "</select>"
Lo que no se es como hacer referencia al campo en concreto para que en cada vuelta del bucle While me tome un valor distinto y me lo aplique a la etiqueta "value" de <option>.

¿Qué me falta por hacer? He mirado en la ayuda y buscado pero no encuentro nada.
  #2 (permalink)  
Antiguo 14/03/2006, 05:00
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Hola.

Yo utilizo mysql_fetch_array:
Código PHP:
print '<select>';
while (
$row=mysql_fetch_array($result)) {
   print 
"<option value=\"$row[usuario]\">$row[usuario]</option>";
}
print 
'</select>'
Saludos.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.

Última edición por franquero; 14/03/2006 a las 05:07
  #3 (permalink)  
Antiguo 14/03/2006, 05:08
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 3
Probado y funcionando

Gracias.

He probado como me indicas y funciona perfectamente.

Otra cuestión referente al combo.

Una vez seleccione un valor y lo envíe al fichero PHP para tratarlo mediante POST, ¿cómo obtengo ese valor?

Hay que poner algo así como:

Código PHP:
$eliminado=mysql_query("delete * from tbl_usuario where usuario='$HTTP_POST_VARS['??????']'"); 
Lo que está con ?????? no se muy bien lo que poner.

El valor del combo lo obtengo de esta forma:

Código PHP:
    echo "<select class='fondoControlesFormulario' name='select' id='usuarios'>";
                        while (
$fila=mysql_fetch_assoc($result)){
                            echo 
"<option value='$fila[usuario]'>$fila[usuario]</option>";
                        }
                          echo 
"</select>"
Espero puedas echarme una mano.
Gracias de antemano.
  #4 (permalink)  
Antiguo 14/03/2006, 06:43
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Pues el valor lo obtienes con $_POST['select'], donde select es el name="" que has asignado en el formulario. En este caso tu consulta debería ser:
Código PHP:
$eliminado=mysql_query("delete * from tbl_usuario where usuario='$_POST[select]'"); 
También puedes recibir las variables al principio del script para no tener que trabajar con $_POST todo el rato. Yo lo hago cuando tengo muchos elementos en el formulario:
Código PHP:
$usuario $_POST['select'];
$eliminado=mysql_query("delete * from tbl_usuario where usuario='$usuario'"); 
Espero que te sirva.
Saludos !!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
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 13:27.