Foros del Web » Programando para Internet » PHP »

ayuda con combo en php trayendo los datos desde una base de datos

Estas en el tema de ayuda con combo en php trayendo los datos desde una base de datos en el foro de PHP en Foros del Web. Estimados amigos, Necesito crear un combo box de seleccion de manera tal que sus campos vengan desde una base de datos y cuando vaya a ...
  #1 (permalink)  
Antiguo 09/08/2006, 13:15
 
Fecha de Ingreso: agosto-2006
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
ayuda con combo en php trayendo los datos desde una base de datos

Estimados amigos,
Necesito crear un combo box de seleccion de manera tal que sus campos vengan desde una base de datos y cuando vaya a editar un registro me muestre en el combo lo que habia seleccionado previamente

gracias por la colaboracion que me puedan prestar
  #2 (permalink)  
Antiguo 09/08/2006, 13:22
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 12 años, 2 meses
Puntos: 0
Primero haces la consulta a la base de datos:
Código PHP:
<?php
require_once ('datos_conexion.php');
mysql_select_db($database_conexion$conexion);
$query_Recordset1 "select * from curso";
$Recordset1 mysql_query($query_Recordset1$conexion) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
?>
Y luego llenas el combo
Código PHP:

<select name="select">
<?php
do {  
?>
<option value="<?php echo $row_Recordset1['idcurso']?>"> <?php echo $row_Recordset1['nombre']?> </option>
<?php
} while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
Ahora para que el combo te muestre lo que fue seleccionado en un inicio, debe de coincidir con algun dato de la base de datos, en ese ejemplo sera que el valor del combo coincida con el valor de el campo "idcurso" de nuestra bd imaginaria:

Código PHP:

  <select name="select">
    <?php
do {  
?>
<option value="<?php echo $row_Recordset1['idcurso']?>"<?php if (!(strcmp($row_Recordset1['idcurso'], $row_Recordset1['idcurso']))) {echo "selected=\"selected\"";} ?>><?php echo $row_Recordset1['nombre']?></option>
    <?php
} while ($row_Recordset1 mysql_fetch_assoc($Recordset1));
  
?>
  </select>
date cuenta que entre el value del combo y su etiqueta se agrega un strcmp y si coincide se escribe la etiqueta html selected.

Espero te sirva

Saludos
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #3 (permalink)  
Antiguo 09/08/2006, 13:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
gracias por la colaboracion, mas sin enmbargo me gustaria tener algo un poco mas sencillo que pena por la molestia
  #4 (permalink)  
Antiguo 22/08/2006, 13:30
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 238
Antigüedad: 13 años, 1 mes
Puntos: 2
A que te refieres con mas sencillo ??

Lo que escribio "PAto Volador" esta clarisimo y muy sencillo
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #5 (permalink)  
Antiguo 22/08/2006, 14:36
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 15 años, 8 meses
Puntos: 0
Lo podrias haber echo asi tambien, que es lo mismo pero por ahi te resulte mas familiar que un do while, usando directamente while

Código PHP:
<?php
require_once ('datos_conexion.php');
mysql_select_db($database_conexion$conexion);
$query_Recordset1 "select * from curso";
$Recordset1 mysql_query($query_Recordset1$conexion) or die(mysql_error());
?>
 <select name="select">
<?php
while ($row_Recordset1 mysql_fetch_assoc($Recordset1))
{  
?>
<option value="<?php echo $row_Recordset1['idcurso']?>"> <?php echo $row_Recordset1['nombre']?> </option>
<?php

?>  
</select>
Es exactamente lo mismo, pero por ahi te es mas familiar asi.
Saludos.
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
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 11:41.