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
-
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
<!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.
-
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
-
Ante todo gracias por tu valioso tiempo Ogramar , veras , con tu recomendacion he probado este codigo
<!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 :
<!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.
-
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
<!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
-
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.
-
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
-
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
<?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
<?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>
<?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
?>
-
Me alegro que lo hayas resuelto, y gracias por poner los códigos, le pueden servir a más personas. Salu2
-
Gracias si funciona
-
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
-
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