Foros del Web » Programando para Internet » PHP »

Mostrar registros de una base de datos en lista desplegable de un formulario

Estas en el tema de Mostrar registros de una base de datos en lista desplegable de un formulario en el foro de PHP en Foros del Web. Saludos: He estado buscando en el foro pero no he encontrado nada referente a esto (y sin embargo me 'suena' haberlo leído... ) Bueno, tengo ...
  #1 (permalink)  
Antiguo 05/12/2006, 05:39
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Mostrar registros de una base de datos en lista desplegable de un formulario

Saludos:

He estado buscando en el foro pero no he encontrado nada referente a esto (y sin embargo me 'suena' haberlo leído... )

Bueno, tengo una base de datos y un formulario:

$result=mysql_query("select * FROM egun WHERE ID='$ID'");
$row=mysql_fetch_array($result);



<form name="menu" action="menu.php" method="post">
<p>
<label><span class="Estilo1"><strong>Menu: </strong>
<select name="ID">
<option value="darle el valor 1"><mostrar el 1er registro de la tabla egun en el campo MENU></option>
<option value="darle el valor 2"><mostrar el registro de la tabla egun en el campo MENU></option>
<option value="darle el valor 3"><mostrar el 3er registro de la tabla egun en el campo MENU></option>

---etc.----


</select>
</span></label>
<label>
<input type="submit" name="Submit2" value="Enviar" />
</label>
</p>
</form>

Es posible hacerlo? Me podeís echar un cable?

Mil gracias de antemano.

Un saludo
__________________
  #2 (permalink)  
Antiguo 05/12/2006, 05:59
Avatar de holahola  
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años
Puntos: 1
Pues yo creo que lo tienes todo. Ahora te falta encajarlo.

Lo que no se es el nivel de conocimientos que tienes de php, porque parece bastante simple.

Como ves, en realidad tienes dos procesos:
1.- Presentas el formulario y le das submit.
2.- Recuperas el id que habras elegido, haces la select y muestras el resultado.

Lo puedes hacer todo en un mismo script o (quizás lo vieras más claro) en dos script separados.

Un pequeño retoque que tendrías que hacer a tu formulario es corregir los "darle el valor 1", 2, etc, por "1", "2", "3". Todo depende del valor de dicho campo asociado al id de tu tabla.

Un saludo.
  #3 (permalink)  
Antiguo 05/12/2006, 08:42
 
Fecha de Ingreso: agosto-2006
Mensajes: 50
Antigüedad: 17 años, 8 meses
Puntos: 0
asi mira:
Código PHP:
$result=mysql_query("select * FROM egun WHERE ID='$ID'");
$row=mysql_fetch_array($result);

<select name="nombre del select">
          <?php
do {  
?>
          <option value="<?php echo $row['ID']?>"><?php echo $row['NOMBRE']?></option>
          <?php
} while ($row mysql_fetch_assoc($result));
?>
        </select>
si en tu tabla los nombre de los campos estan en mayusculas, tendrias que escribir $row['NOMBRE'] lo que esta dentro del corchete en mayusculas, ahora si lo tienes en minusculas.......... pues escribes en minusculas xDDD

saludos
  #4 (permalink)  
Antiguo 05/12/2006, 09:36
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 9 meses
Puntos: 70
Nada mas que decir, asì se hace!!!!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 06/12/2006, 03:55
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Mostrar registros de una base de datos en lista desplegable de un formulario

Saludos:

Ante todo mil gracias por la ayuda.

Con el código que me has pasado, funciona, pero sólo me saca el primer valor de la tabla y ahí se queda:

Tabla egun:


ID_____MENU
1______Selección
2______Vista
3______Recurso
4______Inicio



Código PHP:
<form name="menu" action="menu.php" method="post">
<select name="ID"> 
          <?php 
do {   
?> 
          <option value="<?php echo $row['ID']?>"><?php echo $row['MENU']?></option> 
          <?php 
} while ($row mysql_fetch_assoc($result)); 
?> 
        </select>
<input type="submit" name="Submit" value="Enviar" />
Soy muy notavo en esto, pero no hay que decirle que pase al siguiente registro (algo así como n=n+1) en el while y que siga así hasta que llegue el final de la tabla?

Ya me direis. Un saludo
__________________

Última edición por Jokin; 06/12/2006 a las 04:02
  #6 (permalink)  
Antiguo 06/12/2006, 04:23
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Mostrar registros de una base de datos en lista desplegable de un formulario

Ok, no he dicho nada.

Funciona a la perfección.

Mil gracias
__________________
  #7 (permalink)  
Antiguo 06/12/2006, 08:17
 
Fecha de Ingreso: agosto-2006
Mensajes: 50
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Mostrar registros de una base de datos en lista desplegable de un formulario

claro, si tienes la consulta restringida asi

$result=mysql_query("select * FROM egun WHERE ID='$ID'");

te va a mostrar solo 1 porque el where lo filtra, ahora si colocas :
"select * from egun" te mostraria todos los registros, pero eso ya va en como haces la consulta...

saludos
  #8 (permalink)  
Antiguo 08/12/2006, 05:46
Avatar de Jokin  
Fecha de Ingreso: enero-2002
Mensajes: 725
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: Mostrar registros de una base de datos en lista desplegable de un formulario

Efectivamente pelu. Ese era el problema, que sólo me mostraba la que cumplía dicha condición

Vaya dominio del código que teneis

Por cierto, y aprovechando....

Quisiera meter una condición en la que si se cumple saltara al siguiente registro. Algo así:

If MENU="NO" then salta al siguiente registro

Sería introducirlo en este bucle que me indicasteis:

Código PHP:
<?php 
do {   
?> 
          <option value="<?php echo $row['ID']?>"><?php echo $row['MENU']?></option> 
          <?php 
} while ($row mysql_fetch_assoc($result)); 
?>
Espero no molestar mucho mas

Un saludo
__________________
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 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:29.