Foros del Web » Programando para Internet » PHP »

Mostrar un array proveniente de mysql en <option>

Estas en el tema de Mostrar un array proveniente de mysql en <option> en el foro de PHP en Foros del Web. buenas , espero puedan darme una manoalgo que me tiene muy molesto es no poder con esto.. de seguro le estoy errando en alguna pabada, ...
  #1 (permalink)  
Antiguo 13/01/2010, 12:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Mostrar un array proveniente de mysql en <option>

buenas , espero puedan darme una manoalgo que me tiene muy molesto es no poder con esto.. de seguro le estoy errando en alguna pabada, pero no encuentro el q....
seria algo asi..

mysql_connect($dbhost,$user,$pass) or die ("error coneccion 001");
mysql_select_db($dbname);

$row=mysql_query("SELECT * from marca") or die("no selecciona marca");

creo mi consulta......

y ahora lo que quiero es recorrerla con un while
tal vez algo asi

while($ma=mysql_fetch_array ($row)){


y mostrarla en pantalla en un <option>

algo como

<option valor </option>
<option valor </option>
<option valor </option>
<option valor </option>
<option valor </option>

se entiende?

ejemplo . esto mismo lo hice para años

asi

<select name="anio" >
<option selected><?php echo 'Elige año'; ?></option>
<?php for($i = 1950 ; $i <= $row['anio']; $i++){
echo '<option>' . $i .'</option>' ;
}}
?>

</select>


pero no lo puedo hacer con la consulta marcas.. ya que años solo trae un valor

y marcas trae muchos. se que tendria que hacerlo con un for o algo asi pero no me sale che...

muchas gracias de antemano por su ayuda.. este es un proyecto personal que estoy realizando para fin del curso..
gracias
  #2 (permalink)  
Antiguo 13/01/2010, 12:54
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Mostrar un array proveniente de mysql en <option>

para inciar te comente que siempre los option deberian llevar un valor..... es decir...
<option value="valor">texto</option>

ahora bien... tu codigo de años.... lo veo algo mal, debido a que $row['anio'] no existe.... deberia ser $ma['anio'].
quedaria asi:
Código PHP:
Ver original
  1. <?php
  2. mysql_connect($dbhost,$user,$pass) or die ("error coneccion 001");
  3. mysql_select_db($dbname);
  4. $rs=mysql_query("SELECT * from marca") or die("no selecciona marca");
  5. while($row=mysql_fetch_array($rs)){
  6.     echo "<select name='anio'><option value=''>Elige año</option>";
  7.     for($i = 1950; $i <= $row['anio']; $i++) echo "<option value='$i'>$i</option>";
  8.     echo "</select>";
  9. }
  10. ?>

en cuanto a lo de las marcas...... puedes usar este como prueba y ya tu mismo eres...........

si sigues teniendo problemas...... ps aqui estamos para ayudarte en lo que podamos.

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 13/01/2010, 12:59
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: Mostrar un array proveniente de mysql en <option>

no entiedo a que te refieres...
  #4 (permalink)  
Antiguo 13/01/2010, 13:07
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Mostrar un array proveniente de mysql en <option>

pero por algo solo te trae los años y no las marcas
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 13/01/2010, 13:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: Mostrar un array proveniente de mysql en <option>

ok ok entiendo a que te refieres... te cuento.. lo de fecha marcha a la perfeccion , solo lo puse como muestra de lo que quiero con las marcas.... tu entreverastes ambos por eso no nos entendemos...
vamos de nuevo... lo que ahora tengo que hacer es ..

// con esta consulta

$rs=mysql_query("SELECT * from marca") or die("no selecciona marca");

desplegar el resultado aqui:

"<select name='marca'><option value=''>Elige Marca</option>";
<option> $resultado </option>
<option> $resultado </option>
<option> $resultado </option>
<option> $resultado </option>
<option> $resultado </option>
<option> $resultado </option>
<option> $resultado </option>


</select>

se entiende?

$rs trae todas las marcas de la consulta. ej: nissan, peugeot, chevrolet, bbla,bla,bla

cada marca debe aparecer en un option ej: <option> nissan </option>
<option> chevrolet </option>

esto es lo que intento lograr, y no me sale

gracias nuevamente
  #6 (permalink)  
Antiguo 13/01/2010, 15:03
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Mostrar un array proveniente de mysql en <option>

Código PHP:
Ver original
  1. <?php
  2. mysql_connect($dbhost,$user,$pass) or die ("error coneccion 001");
  3. mysql_select_db($dbname);
  4. $rs=mysql_query("SELECT * from marca") or die("no selecciona marca");
  5. echo "<select name='marca'><option value=''>Elige Marca</option>";
  6. while($row=mysql_fetch_array($rs)) echo "<option value='".$row['marca']."'>".$row['marca']."</option>";
  7. echo "</select>";
  8. ?>

donde $row['marca'] vendria a ser el campo correspondiente de tu tabla marca que deseas mostrar.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #7 (permalink)  
Antiguo 13/01/2010, 16:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 367
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: Mostrar un array proveniente de mysql en <option>

exelente solucione la mayoria de mis problemas... ahora presiso si puedes explicarme como se haria esto

tengo esto pronto

mysql_connect($dbhost,$user,$pass) or die ("error coneccion 001");
mysql_select_db($dbname);



?>
<script type="text/javascript">
var teveo = null;
var teveodos = null;
var formus = [null, 'TD', 'TC', 'FID', 'CTA'];
var formusdos = [null, 'TDdos', 'TCdos', 'FIDdos', 'CTAdos'];
function muestra(formulario) {
if (teveo != null)
document.getElementById(teveo).style.display = 'none';
if (formus[formulario] != null)
document.getElementById(formus[formulario]).style. display = 'block';
teveo = formus[formulario]
}
function muestrados(formulariodos) {
if (teveodos != null)
document.getElementById(teveodos).style.display = 'none';
if (formus[formulariodos] != null)
document.getElementById(formusdos[formulariodos]). style. display = 'block';
teveodos = formusdos[formulariodos]
}
</script>
<?php
echo
"<form>
<select onchange='muestra(this.selectedIndex);'>
<option value='0'>Seleccione un producto</option>
<option value='1'>autos</option>
<option value='2'>camiones</option>
<option value='3'>camionetas</option>
<option value='4'>motos</option>
</select>
</form>";



$rs=mysql_query("SELECT * from marcaautos") or die("no selecciona marca");
echo "<form action='' method='post' name='form1' id='TD' style='display:none;'>" ;
echo "<select name='marca' onchange='muestrados(this.selectedIndex);'><option value=''>Elige Marca</option>";
while($row=mysql_fetch_array($rs)) echo "<option value='".$row['marcas']."'>".$row['marcas']."</option>";
echo "</select>
</form>" ;




$ra=mysql_query("SELECT * from modelo where marca=$mar") or die("no selecciona modelo");

echo "<form action='' method='post' name='form1' id='TDdos' style='display:none;'>" ;

echo "<select name='modelo'><option value=''>Elige Modelo</option>";
while($rr=mysql_fetch_array($ra)) echo "<option value='".$rr['mod']."'>".$rr['mod']."</option>";
echo "</select>
</form>" ;



?>

el problema es que todo el codigo se ejecuta al mismo tiempo y cuando selecciono la marca no puedo lograr que realize la segunda consulta.. se entiende??
osea selecciono autos, peugeot. ahora deberian aparecer los modelos correspondientes a peugeot...
pero no me aparecen porque el segundo select ya se ejecuto al momento de entarar y esta vacio...
lo que debo hacer es que el segundo select se ejecute al momento de seleccionar la marca... como hago esto??

muchas gracias
  #8 (permalink)  
Antiguo 14/01/2010, 09:55
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Mostrar un array proveniente de mysql en <option>

lo normal seria que el segundo no se muestre hasta que haya sido elegida una opcion del primer select... y asi sucesivamente.
eso lo harias con una simple validacion en php......
en el pirmer select harias un event submit en el onchange para que se recargue la pagina.
una vez recibido el valor elegido del primer select realizas el codigo para el segundo.
Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog

Etiquetas: mysql
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 21:05.