Foros del Web » Programando para Internet » PHP »

Mostrar contenido de una tabla con un <select> y <option>

Estas en el tema de Mostrar contenido de una tabla con un <select> y <option> en el foro de PHP en Foros del Web. Saludos a todos. Soy muy nuevo en PHP. Apenas aprendi a conectarme con la base de datos, es decir, apenas solo agrego registros. Pero ahora ...
  #1 (permalink)  
Antiguo 04/03/2008, 14:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Mostrar contenido de una tabla con un <select> y <option>

Saludos a todos.
Soy muy nuevo en PHP.
Apenas aprendi a conectarme con la base de datos, es decir, apenas solo agrego registros.
Pero ahora necesito es mostrar lo que agregue en una tabla de la base de datos.
Es decir, en un formulario necesito mostrar algunos registro, pero usando esto:
<select> <option></option>
</select>. Y que se me desplegue cierta columna de la tabla, digamos que nombre si hablamos de una tabla usuario.
Algo asi como si quisiera mostrar las ciudades o los estados de un país. Pero estos deben estar vaciados en una tabla y no ser parte del código de la hoja ni estar en algun script adicional.
Gracias a todos de antemano.
  #2 (permalink)  
Antiguo 04/03/2008, 14:55
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Re: Mostrar contenido de una tabla con un <select> y <option>

Holas t-udis

Ya sabes ingresar datos en la base de datos, cierto? Pues consultarlos es casi lo mismo. La única diferencia es que aparte de ejecutar la sentencia sql, debes recoger los datos que te llegan de a filas.

Un ejemplo:

Código PHP:
// Envía la consulta a Mysql:
$sql mysql_query("select id, nombre from paises order by nombre");

// Verifica que te llegaron datos de respuesta:
if (mysql_num_rows($sql) > 0)
{
  
// Recoge los datos recibidos. 
  // Puedes mostrarlos o guardarlos en un arreglo para posterior uso...

  // Yo he elegido mostrarlos directamente en el select:
  
echo"  Paises <select>\n";
  
  
// Aquí recorres los datos recibidos:
  
while ($temp mysql_fetch_array($sql))
  {
    print
" <option value='".$temp["id"]."'>".$temp["nombre"]."</option>\n";
  }

  echo
"  </select>\n";
}
else
{  echo
"No hay datos";  }

// Cierras la consulta
mysql_free_result($sql); 
Cuando aprendas bien esto será tiempo de agregar más validaciones, como cuando mysql te devuelve errores en vez de datos.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 05/03/2008, 09:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Mostrar contenido de una tabla con un <select> y <option>

Disculpa lo brutico que soy quinqui.
Hice fue esto, no me funciono, imagino que esta muy mal. Podrias decirme donde esta el fallo.
Código PHP:
<?
  $conectar
=mysql_connect("localhost","root","");
  
$db="cutec";
  
$sql="SELECT * FROM curso";
  
$resultado=mysql_db_query($db,$sql);
  echo 
mysql_error();
  
//echo $sql;
?>
Selecciona:
<?
  $nregistros
=mysql_num_rows($resultado);
?>
<select name="seleccion">
<?
  
for($i=0;$i<$nregistros;$i++){
   
$contenido=mysql_fetch_array($resultado);
?>
 <option value=""><?=$contenido[1];echo "<br \n>";?></option>

</select>
<?
  
}
?>
En el campo me sale el primer registro y del segundo registro en adelante sale fuera del campo desplegable para seleccionar.

Última edición por t-udis; 05/03/2008 a las 09:50
  #4 (permalink)  
Antiguo 05/03/2008, 09:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Mostrar contenido de una tabla con un <select> y <option>

Código PHP:
<?
  $conectar
=mysql_connect("localhost","root","");
  
$db="cutec";
  
$sql mysql_query("SELECT curso FROM curso ORDER BY idcurso");
// el nombre de la tabla y el campo que quiero mostrar tienen el mismo nombre: "curso".
  
$resultado=mysql_db_query($db,$sql);
  if (
mysql_num_rows($sql) > 0)
  {
   echo
" Seleccione: <select>\n";
    while (
$temp mysql_fetch_array($sql))
      {
       print
" <option value='".$temp["idcurso"]."'>".$temp["curso"]."</option>\n";
      }
   echo
" </select>\n";
  }
  else
     {
      echo
"No hay datos";
     }
mysql_free_result($sql);
?>
Esto fue lo que hice con lo que me diste.
Todo lo hice dentro de <? ?>.
Gracias por tu ayuda .

Última edición por t-udis; 05/03/2008 a las 10:04
  #5 (permalink)  
Antiguo 05/03/2008, 11:43
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 9 meses
Puntos: 7
Re: Mostrar contenido de una tabla con un <select> y <option>

Prefiero trabajarlo asi:


Código PHP:
<?
  $conectar
=mysql_connect("localhost","root","");
  
$db="cutec";
  
$sql mysql_query("SELECT curso FROM curso ORDER BY idcurso");
?> 


<? if (mysql_num_rows($sql) > 0)   { ?>
<select name="select" id="select">
<?  while ($temp mysql_fetch_array($sql)) { ?>
  <option value="<? echo $temp["idcurso"]; ?>"><? echo $temp["curso"]; ?></option>
<? mysql_free_result($sql);?>  
</select>
<? }else{ ?>
No hay datos
<? ?>
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #6 (permalink)  
Antiguo 05/03/2008, 13:42
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Re: Mostrar contenido de una tabla con un <select> y <option>

Cita:
Iniciado por t-udis Ver Mensaje
Código PHP:
Selecciona:
<?
  $nregistros
=mysql_num_rows($resultado);
?>
<select name="seleccion">
<?
  
for($i=0;$i<$nregistros;$i++){
   
$contenido=mysql_fetch_array($resultado);
?>
 <option value=""><?=$contenido[1];echo "<br \n>";?></option>

</select>
<?
  
}
?>
Qué bueno que ya te salió :)
En cuanto al código anterior, EDITO (porque a la rápida creí que era otro el error, y ahora me acabo de dar cuenta de que nop, así que aquí va la correción). Has puesto el final del select después de cada opción. Seguramente olvidaste ponerlo fuera del ciclo FOR :)
Así como está seguramente estaría imprimiendo algo como:

Código HTML:
<select>
 <option>Texto 1 <br 
></option> 
</select>
 <option>Texto 2 <br 
></option> 
</select>
 <option>Texto 3 <br 
></option> 
</select>
 <option>Texto 4 <br 
></option> 
</select> 
Saludos :)
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #7 (permalink)  
Antiguo 05/03/2008, 14:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Mostrar contenido de una tabla con un <select> y <option>

Cita:
Iniciado por quinqui Ver Mensaje
Qué bueno que ya te salió :)
En cuanto al código anterior, EDITO (porque a la rápida creí que era otro el error, y ahora me acabo de dar cuenta de que nop, así que aquí va la correción). Has puesto el final del select después de cada opción. Seguramente olvidaste ponerlo fuera del ciclo FOR :)
Así como está seguramente estaría imprimiendo algo como:

Código HTML:
<select>
 <option>Texto 1 <br 
></option> 
</select>
 <option>Texto 2 <br 
></option> 
</select>
 <option>Texto 3 <br 
></option> 
</select>
 <option>Texto 4 <br 
></option> 
</select> 
Saludos :)
Quinqui, disculpame vuelvo a repetirte que soy medio brutico.
No entendi lo que me escribistes, eso debe estar sin <? ?>.

Esto es lo que me sale con lo que yo edite, es decir, utilizando el ciclo FOR. Yo lo que necesito es que los otros registros esten dentro del campo desplegable asi como lo esta "curso1" y no que esten fuera de este.
Gracias por toda tu ayuda y paciencia. Igualmente a todos los que me han colaborado.
^_^
  #8 (permalink)  
Antiguo 05/03/2008, 14:29
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Re: Mostrar contenido de una tabla con un <select> y <option>

No problem. Analicé con más detalle el código que armaste a partir de mi sugerencia. Aquí lo pongo con algunas correcciones.

(Por cierto, usualmente para recorrer el resultado de una consulta a base de datos usamos WHILE, no FOR... pero la verdad no sé si es una regla impuesta por algún programadorcillo o si es la sintaxis estricta del caso... jejeje... Aquí va con WHILE :P)

Código PHP:
$conectar=mysql_connect("localhost","root","");
$db="cutec";

// Aquí te faltaba poner el campo "idcurso" en tu consulta:
$sql = mysql_query("SELECT idcurso, curso FROM curso ORDER BY idcurso");

// el nombre de la tabla y el campo que quiero mostrar tienen el mismo nombre: "curso".
$resultado=mysql_db_query($db,$sql);

if (mysql_num_rows($sql) > 0)
{
    // Para cambiar un poco: tags HTML en vez de "echo" o "print":
    ?>Seleccione: <select name="idcurso"> <?

    
while ($temp mysql_fetch_array($sql))
      {
         
?> <option value="<?= $temp["idcurso"]; ?>"><?= $temp["curso"]; ?></option>
      } // Fin del While

    ?></select><?
}
else
{
   
?>No hay datos<?
}
mysql_free_result($sql);
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 08:36.