Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: jga en 01 de Abril 2015, 22:25

Título: Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: jga en 01 de Abril 2015, 22:25
Hola como estais, he estado usando el buscador y no he encontrado ningun post referente a mi caso. Intentare explicarme , tengo un problema con una lista desplegable a la hora de que me recoja los campos de una tabla que hay en una base de datos . La base de datos tiene una tabla llamada cursos con un solo campo curso en el que figuran el nombre de los cursos , y lo que quiero hacer es que cuando actualice la lista de cursos de la bbdd aparezcan los nuevos cursos en la lista desplegable , y es por eso que tiene que coger la lista de cursos de la bbdd , pero al pulsar en la desplegable no hace nada, espero que podais orientarme un poco porque he probado varias cosas y no doy con ello ,
el codigo que escribo es este es este


Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Elegir curso</title>
</head>
<body>
curso<br />
 <?php
// Consultar la base de datos
$conn=mysqli_connect("localhost","root","root","alumnoshnp");
$consulta_mysql='select * from cursos';
$resultado_consulta_mysql=mysqli_query($consulta_mysql,$conn);
 
?>

 <select name="selectcurso">
  <?php
 
while($lista=mysqli_fetch_assoc($resultado_consulta_mysql))
   echo 
"<option  value='".$lista["curso"]."'>"."</option>"
  
?>

</select>
</body>
</html>


gracias y un abrazo.
Título: Re:cargar opciones a lista desplegable desde bbdd
Publicado por: Ogramar en 01 de Abril 2015, 23:17
Hola lo primero sería comprobar que la consulta a la base de datos te esté trayendo los resultados correctamente.

Por ejemplo si cambias esto:

echo "<option  value='".$lista["curso"]."'>"."</option>";

Por esto:

echo 'Obtenido: '.$lista["curso"];

Deberías poder ver los resultados en la pantalla.

También ten en cuenta que las comillas te pueden estar generando un conflicto

Salu2
Título: Re:cargar opciones a lista desplegable desde bbdd
Publicado por: jga en 02 de Abril 2015, 10:50
Ante todo gracias por tu valioso tiempo Ogramar , veras , con tu recomendacion he probado este codigo
Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Elegir curso</title>
</head>
<body>

 <?php

$conn
=mysqli_connect("localhost","root","root","alumnoshnp") ;
if (
$conn)echo "conexion ok" ;
else echo 
"conexion ko";


$consulta="select * from cursos";

$resultado=mysqli_query($conn,$consulta);
 
 while(
$lista=mysqli_fetch_array($resultado))
 echo 
"</br>".$lista["curso"]."</br>" ;
  
?>


</body>
</html>

y me devuelve los nombres de los cursos perfectamente

para cargarlos en la lista creo este otro :

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
curso<br />
<select name="select1">
   
       <?
            $conn=mysqli_connect("localhost","root","root","alumnoshnp") ;
                  if ($conn)echo "conexion ok" ;
                 else echo "conexion ko";
                 $consulta="select * from cursos";
                 $resultado=mysqli_query($conn,$consulta);
                       
                        while($lista=mysqli_fetch_array($resultado))
 
    ?>
                   <option  value="<? $lista['curso']?> ">
                           <? $lista['curso']?>
                   </option>
   
</select>

</body>
</html>

y aparece la pestaña , pero al pulsar sobre ella no aparece nada , ni siquiera las opciones en blanco , un abrazo.
Título: Re:cargar opciones a lista desplegable desde bbdd
Publicado por: Ogramar en 02 de Abril 2015, 13:35
Hola parece que tienes el código php mal construido, por ejemplo en while($lista=mysqli_fetch_array($resultado)) ¿dónde están los corchetes de inicio y fin del while?

Para revisar cómo se construyen while en php: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

Revisar cómo se construye un select html en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=534:checkbox-y-radio-en-form-html-select-option-y-optgroup-multiple-listas-desplegables-opciones-cu00723b&catid=69:tutorial-basico-programador-web-html-desde-cero&Itemid=192

No lo he probado pero la idea sería algo como esto

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
curso<br />
<select name="select1">
   
       <?
            $conn=mysqli_connect("localhost","root","root","alumnoshnp") ;
                  if ($conn)echo "conexion ok" ;
                 else echo "conexion ko";
                 $consulta="select * from cursos";
                 $resultado=mysqli_query($conn,$consulta);
                       
                        while($lista=mysqli_fetch_array($resultado)){
 
    ?>
                   <option>  <? echo $lista['curso']?></option>
    <? } ?>
</select>
</body>
</html>

Salu2
Título: Re:cargar opciones a lista desplegable desde bbdd
Publicado por: jga en 02 de Abril 2015, 14:58
 ya estamos aqui otra vez , siento molestar  tanto , veras , he probado el codigo tal cual mencionas y sigue pasando lo mismo , ya no se que pensar ; si  soy un inutil o es que tengo mala suerte ,  tendra algo que ver el tipo de campo de la tabla mysql? esta en varchar , un abrazo y muchas gracias por todo.
Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: Ogramar en 02 de Abril 2015, 15:51
Hola puede que falte el punto y coma aquí:

<option>  <? echo $lista['curso'];?></option>

Prueba también <option>  <? echo "".$lista['curso'];?></option>

Y también <option>  <?=$lista['curso']?></option>

Prueba también a hacer apertura de etiquetas php con <?php en lugar de con <?

Salu2


Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: jga en 02 de Abril 2015, 16:39
he vuelto a seguir tus recomendaciones , y , hecho compañero , no sabes lo que te lo agradezco , voy a poner aqui los codigos de los documentos que he usado y asi si alguien necesita hacerlo puede consultarlo , porque antes busqué un tema con algo asi , pero especifico no lo encontré, un abrazo fuerte y gracias por tu tiempo.

config.php

Código: [Seleccionar]
<?php

/*
 * Archivo de configuración de la conexion a la BD
 * * $server : nombre del servidor de la base de datos
 * * $username : nombre del usuario de la base de datos
 * * $password : password del usuario de la base de datos
 * * $databas_name : nombre de la base de datos
 */

$server 'localhost';
$username 'root';
$password 'root';
$database_name 'alumnos';

?>



archivo conexion.php
Código: [Seleccionar]
<?php

/*
 * Código de conexión a una base de datos mediante sintaxis de mysqli
 */
include 'config.php';

$conexion = new mysqli($server,$username,$password,$database_name);

if ( 
$conexion->connect_error 

    die(
'Error de Conexión'$conexion->connect_error);
}
else
{
    
//echo 'Conexion OK';
}

?>



archivo formulario.php con la lista <select>

Código: [Seleccionar]
<?php

/*
 * Código para mostrar datos dinámicamente en un combobox.
 */

include 'conexion_mysqli.php';

$query 'SELECT * FROM cursos';

$result $conexion->query($query);

?>

<select>   
    <?php    
    
while ( $row $result->fetch_array() )    
    {
        
?>

   
        <option value=" <?php echo $row['curso'?> " >
        <?php echo $row['curso']; ?>
        </option>
       
        <?php
    
}    
    
?>
       
</select>
<?php

?>


Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: Ogramar en 02 de Abril 2015, 16:57
Me alegro que lo hayas resuelto, y gracias por poner los códigos, le pueden servir a más personas. Salu2
Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: jorge_4ugusto en 20 de Noviembre 2016, 17:38
Gracias si funciona
Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: Carlos Nuñez en 29 de Noviembre 2016, 20:53
buenos dias/tardes/ noches
quisiera ver si me pueden ayudar. lo que tengo que hacer es con lista  despegable que cuando seleciones cualquier opcion me muestre de mi base de datos las opciones seleccionadasmi base de datos esta sobre postgres ya pude hacer la conexion solo me falta que jale la informacion
Título: Re:Cargar opciones a lista desplegable select option desde base de datos con PHP
Publicado por: Ogramar en 30 de Noviembre 2016, 19:54
Buenas Carlos, lee https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 , abre un nuevo hilo, expón el problema y el código que tienes hasta el momento, etc.

Salu2