Foros del Web » Programando para Internet » PHP »

Lista desplegable a partir de consulta SQL

Estas en el tema de Lista desplegable a partir de consulta SQL en el foro de PHP en Foros del Web. Hola a todos. ¿Alguien sabría decirme como puedo mostrar una lista desplegable a partir de los resultados generados por una consulta a la BD? Sé ...
  #1 (permalink)  
Antiguo 23/06/2002, 05:00
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Lista desplegable a partir de consulta SQL

Hola a todos.

¿Alguien sabría decirme como puedo mostrar una lista desplegable a partir de los resultados generados por una consulta a la BD?

Sé hacerlo de forma estática, pero no de forma dinámica en función del número variable
de registros devueltos por la consulta.

Muchas gracias por las futuras respuestas

Un saludo
  #2 (permalink)  
Antiguo 23/06/2002, 05:53
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Lista desplegable a partir de consulta SQL

Hola
Haces la consulta a la base de datos
te va a quedar en un array los datos obtenidos
pones un echo " <select name="select">"
//con los parametros que quieras, nombre etc.
aca pones un ciclo por ejemplo for o while que va leyendo datos del arrayy van asignandose a:
echo "<option value="Aca podes poner algun dato del array">aca tambien</option>";
cerras el cilco
echo " </select>";
y listo

Usuaria registrada de<br><img src=http://www.iespana.es/besitosweb/logo.gif><br> Consmetics<br>#000001<br>
Besitos Romi
  #3 (permalink)  
Antiguo 23/06/2002, 11:13
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Hola Romina, muchas gracias por tu respuesta,
me has orientado pero aún me falta culminarlo.

Ahora si que me sale el desplegable, pero me
sale vacío.

El código es el siguiente:

$db_conexion= mysql_connect(&quot;localhost&quot;, &quot;&quot;, &quot;&quot;)
or die(&quot;No se pudo conectar a la Base de datos&quot;) or die(mysql_error());

mysql_select_db(&quot;hamelin&quot;) or die (&quot;nada de nada&quot;) or die(mysql_error());
$usuario_consulta = mysql_query(&quot;SELECT nombre_empresa FROM clientes&quot;)
or die(&quot;No se pudo realizar la consulta a
la Base de datos&quot;);

$resultados = mysql_fetch_array($usuario_consulta);

echo &quot; &lt;select name=sel&gt;&quot;;
for(reset($resultados);$indice=key($resultados);ne xt($resultados))
echo&quot;&lt;option value ='$resultados[$indice]'&gt;$resultados[$indice]&lt;/option&gt;&quot;;

echo &quot; &lt;/select&gt;&quot;;


Pero está claro que algo debo de hacer mal,
porque me sale el desplegable vacío.

Podrías terminar de orientarme?

Muchas gracias de nuevo
  #4 (permalink)  
Antiguo 23/06/2002, 15:16
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Hace mucho tiempo postee un código completo con esa ayuda. Creo que el subject del mensaje era &quot;Base datos a Lista desplegable&quot;.

echale una pepa al buscador.
  #5 (permalink)  
Antiguo 23/06/2002, 16:11
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Pues por más que he buscado no lo encuentro.

He buscado por el subject que me has recomendado no lo encuentro.

También he buscado por tu nombre y nastis.

No ha habido suerte.

Podrías resumirlo si fueras tan amable?

Un saludo
  #6 (permalink)  
Antiguo 23/06/2002, 16:14
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

a ver si logro sacar el código de la página donde lo puse, no estoy en mi oficina ahora y no logro recordar la clave del server. :(

si esperas un rato te ayudo, o si prefieres lo pongo aki mañana.
  #7 (permalink)  
Antiguo 23/06/2002, 16:22
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

es mas facil usar while() para loopear las consultas sql
$sql = &quot;SELECT * FROM tabla&quot;;
$result= mysql_query($sql);
echo &quot;&lt;select name=sel&gt;&quot;;
while($res = mysql_fetch_array($result)){
echo &quot;&lt;option value=&quot;.$res[indice].
&quot;&gt;&quot;.$res[indice].&quot;&lt;/option&gt;\n&quot;;
}
echo &quot;&lt;/select&gt;

Supongo que asi funcionara bien ;)
Saludos






<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #8 (permalink)  
Antiguo 23/06/2002, 16:42
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

yata, ya postearon el código es similar al ke yo usé y funciona bien. De todos modos si lo encuentro lo pongo.
  #9 (permalink)  
Antiguo 24/06/2002, 10:12
 
Fecha de Ingreso: marzo-2002
Ubicación: Guadalajara, Jalisco.
Mensajes: 213
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

El codigo si funciona ya lo probé y jala a la perfección cheka <a href='ir.asp?http://www.edeprem.com/prueba-ok.php' target='_blank'>http://www.edeprem.com/prueba-ok.php...</a>

saludos!
  #10 (permalink)  
Antiguo 24/06/2002, 10:24
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Perfecto!!!

Poco a poco voy aprendiendo cosas, que es
de lo que se trata. El saber no ocupa lugar.

De todas maneras, me gustaría ir un poco más allá, ya que este desplegable lo voy a utilizar para permitir la entrada de hasta 5 campos de la misma tabla (trabajo1,trabajo2...trabajo5) y todos ellos tienen que tomar valores del mismo select.

Para esto he creado un bucle para cada uno
de los campos, o sea, que he repetido la operación en la que me habéis ayudado hasta 5 veces, pero solo me aparecen valores para
el primer select.

Imagino que el problema radicará en el mysql_fetch que al terminar deja el array en la ultima posición y habría que llevarlo a la primera para que pueda volver a hacerlo en
el segundo bucle.

Lo he intentado con la función reset, pero no
resulta.

¿Alguna sugerencia? Si no la hay, me sentire igualmente agradecido por la ayuda anterior.

Un saludo
  #11 (permalink)  
Antiguo 24/06/2002, 17:33
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Yata el codigo,

&lt;? $ConexData=mysql_connect(&quot;localhost&quot;,&qu ot;&quot;,&quot;&quot;);
mysql_select_db(&quot;database&quot;,$ConexData);
$SQLTabla=mysql_query(&quot;SELECT * FROM tabladatos ORDER BY campo1 ASC&quot;,$ConexData);
?&gt;
&lt;select name=&quot;datos&quot;&gt;
&lt;? // Ciclo para llenar el select
while($Registro = mysql_fetch_array($SQLTabla)) {
?&gt;
&lt;option value=&quot;archivodestino.php?variables=&lt;? print($Registro[&quot;campo1&quot;]); echo &quot;&amp;variable2=&quot;;print($Registro[&quot;campo2&quot;]); ?&gt;&quot;&gt;&lt;? print($Registro[&quot;otrocampo&quot;]); ?&gt;
&lt;/option&gt;
&lt;? } mysql_close($ConexData); ?&gt;
&lt;/select&gt;

Dime algo el ciclo ke repetiste 5 veces lo usas con el mismo select ??? o haces 5 consultas diferentes ??

Me intriga eso.
  #12 (permalink)  
Antiguo 25/06/2002, 02:23
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Exacto!!

Utilizo el mismo select para los 5 ciclos,
con lo cual creo que lo que tengo que hacer
es volver a poner el array que contiene
los resultados de la consulta al principio
para que cuando haga el mysql_fetch_array
en cada uno de los ciclos extraiga otra
vez bien los datos y pueda mostrarlos.

He probado con la instruccion reset($resultado_consulta) para los ciclos 2-5,
pero siguen saliendo vacíos los desplegables.
Sólo sale bien el primero.

La única solución (poco eficaz) es volver
a ejecutar el select con mysql_query por
cada ciclo, pero es una solución poco
óptima porque significan 5 accesos a la BD
para algo que estoy convencido de que se
puede hacer sólo con una, pero no sé como.

¿Se te ocurre algo?

Gracias y un saludo
  #13 (permalink)  
Antiguo 25/06/2002, 03:02
 
Fecha de Ingreso: agosto-2001
Mensajes: 315
Antigüedad: 16 años, 4 meses
Puntos: 1
Re: Lista desplegable a partir de consulta SQL

No esta muy claro lo que queres.
Lo que entiendo es que queres hacer esto:
tenes una tabla con varios campos, vamos a llamarlos
campo1 campo2 campo3 campo4 campo5
haces una consulta y queres que crear un select que tenga como optoin cada uno de esos 5 campos para cada registro?
si es eso lo que queres ya te derieron la solucion

haces la coneccion
la consulta
y como te dijeron


while($Registro = mysql_fetch_array($SQLTabla)) {
echo&quot;&lt;option value=$Registro['campo1'])&gt;$Registro['campo1']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo2'])&gt;$Registro['campo2']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo3'])&gt;$Registro['campo3']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo4'])&gt;$Registro['campo4']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo5'])&gt;$Registro['campo5']&lt;/option&gt;&quot;;
}

Cada vuelta del while te va a poner los 5 campos de cada registro.
Si es otra cosa trata de ser mas claro por que es media confuso tu pregunta

Usuaria registrada de<br><img src=http://www.iespana.es/besitosweb/logo.gif><br> Consmetics<br>#000001<br>
Besitos Romi
  #14 (permalink)  
Antiguo 25/06/2002, 07:37
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Perdonad si no me explico bien.
Lo vuelvo a intentar.

Efectivamente, este es el while mostrar
una lista desplegable que se almacenerá
en una variable:

while($Registro = mysql_fetch_array($SQLTabla)) {
echo&quot;&lt;option value=$Registro['campo1'])&gt;$Registro['campo1']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo2'])&gt;$Registro['campo2']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo3'])&gt;$Registro['campo3']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo4'])&gt;$Registro['campo4']&lt;/option&gt;&quot;;
echo&quot;&lt;option value=$Registro['campo5'])&gt;$Registro['campo5']&lt;/option&gt;&quot;;
}

Como he dicho, la opción que cojas, se guarda en una variable,por ejemplo &quot;varA&quot;.

Pues bien, en este script, además de &quot;varA&quot;,
voy a tener dar valores a &quot;varB&quot;, &quot;varC&quot;,&quot;varD&quot;,&quot;varE&quot; . Todo ellos,
tomarán sus valores del mismo select, y por
lo tanto de la misma lista desplegable.

La primera opción que escogí (ya sé que no
la más eficiente) fue la de hacer 5 while,
uno para cada variable y en todos ellos
utilizar la misma cabecera del while:

while($Registro = mysql_fetch_array($SQLTabla))

El problema que tengo, es que haciéndolo de
esta manera, sólo me salen valores en el primer desplegable, los otros cuatro me salen
vacíos.

Yo lo achacaba a que el array $SQLTabla, tendría que ser reiniciado para empezar
cada uno de los mysql_fetch_array y para
ello intenté utilizar la función:

reset($SQLTabla)

antes de cada while, pero el resultado siguió
siendo el mismo.

Lo que os preguntaba, era si sabíais porque
fallaban la operación y no salían valores para los últimos 4 desplegables.

Espero haberme explicado mejor, perdón por las molestias.

Un saludo y gracias
  #15 (permalink)  
Antiguo 26/06/2002, 02:42
 
Fecha de Ingreso: marzo-2002
Ubicación: Guadalajara, Jalisco.
Mensajes: 213
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Al hacer el ciclo con el select me sale el problema de que se repiten los valores que hay en la tabla de datos.

Por ejemplo si en el select van a aparecer apellidos y hay muchos que se apellidan &quot;Castro&quot; el ***che select me pone muchas veces:
Castro
Castro
Castro
etc.

¿como puedo evitar esto?
  #16 (permalink)  
Antiguo 26/06/2002, 03:17
 
Fecha de Ingreso: mayo-2002
Mensajes: 41
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Hola!!

Ese problema lo tuve yo cuando cometí el error de poner la instruccion MYSQL_FETCH_ARRAY antes de procesar el bucle
de las selecciones.

Puedes probar con un bucle FOR donde la
primera instrucción que contenga sea:


$DatosConsulta = mysql_fetch_array($IdConsulta);

Así solucioné yo el problema.

Espero que te sea de ayuda.

Un saludo
  #17 (permalink)  
Antiguo 26/06/2002, 10:16
 
Fecha de Ingreso: junio-2002
Mensajes: 39
Antigüedad: 15 años, 5 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Hola muchachos...
Exactamente funciona. lo hice con postgresql y esta ok.
Por si les sirve...si se trata de una tabla que tiene (tipo_persona,persona):

$con=pg_connect($servidor,&quot;&quot;,&quot;&quot ;,&quot;&quot;,$bd);
$res=pg_exec($con,&quot;select * from personas where tipo_persona='$xtipo_persona'&quot;);
$num_reg=pg_numrows($res);
echo &quot;&lt;select name=tipos_per&gt;&quot;;
for ($i=0;$i&lt;$num_reg;$i++){
$datos=pg_fetch_object($res,$i)
echo &lt;option value=$datos-&gt;tipo_persona&gt;$datos-&gt;persona&quot;;
}
  #18 (permalink)  
Antiguo 26/06/2002, 13:38
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Bueno, lo de los loops con una misma consulta es un problema con el que me encontre yo tambien, y termine haciendo 2 consultas... Ahora en tu caso, en que tenes 5 consultas creo que valdra la pena que averiguemos como es...
Yo probe de almacenar el resultado de mysql_fetch_array($sql) en dos variables, y usar una y luego la otra... Pero no funciono tampoco =(((
Alguien aca en el foro me dijo que la solucion era mysql_data_seek(), pero no le di mas atrencion... Voy a ver si luego averiguo como funciona...

Saludios


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #19 (permalink)  
Antiguo 26/06/2002, 18:24
 
Fecha de Ingreso: marzo-2002
Ubicación: Guadalajara, Jalisco.
Mensajes: 213
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Lista desplegable a partir de consulta SQL

Creo que ya resolví el problema.

E irónicamente fue de una forma muy sencillas.

A la consulta &quot;SELECT dato FROM tabla&quot; le agregue solamente un &quot;GROUP BY dato&quot;

Así solamente te pondrá el dato una vez en la lista desplegable.

¿como ven?
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 15:37.