Foros del Web » Programando para Internet » PHP »

Mostrar campo de select "selected" de una consulta con php y mysql

Estas en el tema de Mostrar campo de select "selected" de una consulta con php y mysql en el foro de PHP en Foros del Web. Hola a todos, tengo una duda que me gustaria consultarles. Les cuento: Tengo una base de datos de un biblioteca donde se almacenan libros con ...
  #1 (permalink)  
Antiguo 20/10/2008, 12:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Mostrar campo de select "selected" de una consulta con php y mysql

Hola a todos,
tengo una duda que me gustaria consultarles.
Les cuento:
Tengo una base de datos de un biblioteca donde se almacenan libros con (titulo, autor, editorial, etc).
Lo que me sucede es que cuando deseo modificar los datos de un libro hago una consulta a un formulario pasandole la "id" del libro para que me rescate todos los registros y no logro marcar con un "selected" la opción correcta de otra base de datos con, por ejemplo, una lista de autores.
No se si me he explicado.
Les pego el código para ver si me pueden ayudar.
Muchas gracias a todos de antemano.

Código PHP:
<?php
include("../conexion.php");
$link=conectarse();
$result=mysql_query("SELECT * FROM biblio WHERE ID_biblio = $id",$link);
while(
$row mysql_fetch_array($result)) {
printf("<form action=\"modifica.php\" method=\"post\" name=\"form1\" id=\"form1\">
      <input type=hidden name='id' value='$id'>
        <table>
        <tr>
          <td>Titulo:</td>
          <td><input name=\"titulo\" type=\"text\" id=\"titulo\" value=\"$row[titulo]\"/></td>
        </tr>
        <tr>
          <td>Autor:</td>
          <td>
            <select name=\"autor\" class=\"aform\" id=\"autor\">
              <option value=''></option>"
);
    
$autorreal $row[autor];
        
$sel_autors=mysql_query("SELECT * FROM biblio_autors ORDER BY nom ASC",$link);
    while(list(
$id,$nom) = mysql_fetch_row($sel_autors)) {
    if(
$nom == $autorreal){
        echo 
'<option value="'.$nom.'" SELECTED>'.$nom.'</option>';
        }
    else{
        echo 
'<option value="'.$nom.'">'.$nom.'</option>';
        }
    }
    
mysql_free_result($sel_autors);
    
mysql_close($link);
    
printf("</select></td>
        </tr>
        <tr>
          <td>Disponibilidad:</td>
          <td>
            <select name=\"disp\" id=\"disp\">"
);
    if(
$row[disp] == 'SI')
        echo 
'<option value=\"SI\" selected>SI</option>';
    else
        echo 
'<option value=\"SI\">SI</option>';    
        
    if(
$row[disp] == 'NO')
        echo 
'<option value=\"NO\" selected>NO</option>';
    else
        echo 
'<option value=\"NO\">NO</option>';
    
printf("</select>
          </td>
        </tr>
        <tr>
          <td></td>
          <td><input name=\"enviar\" type=\"submit\" id=\"enviar\" value=\"Enviar\" />
            &nbsp;
            <input name=\"eliminar\" type=\"reset\" id=\"eliminar\" value=\"Eliminar\" /></td>
        </tr>
      </table>
    </form>"
);
    
mysql_free_result($result);
    
mysql_close($link);
    } 
?>

Última edición por graller; 21/10/2008 a las 12:23
  #2 (permalink)  
Antiguo 20/10/2008, 21:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Pon el codigo dentro de etiquetas PHP para poder leerlo mejor, leerlo de esa manera me da dolor de cabeza.

Si lo que no sabes es como hacer que dependiendo cierto valor mostrar un elemento de un <select> como selected, es sencillo. Es solamente evaluar una condicion y si la condicion se da, imprimir selected a la etiqueta option.
  #3 (permalink)  
Antiguo 21/10/2008, 01:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Perdonen, ya he puesto el codigo dentro de etiquetas.

Se que tengo que hacer una condicion pero no se como.
muchas gracias

Última edición por graller; 21/10/2008 a las 12:17
  #4 (permalink)  
Antiguo 27/10/2008, 14:47
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 17 años
Puntos: 3
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

vaya increible tengo el mismo problema y con google llege hasta aca.

como hacer que salga SELECTED de la opcion que esta en la BD?
lo mismo para el radio button.

Si encuentro una forma la posteo.
  #5 (permalink)  
Antiguo 27/10/2008, 15:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Hola gokufast,

Como dice Ronruby, tienes que ir comparando tus registros cuando los vas imprimiendo en tus <option> cuando encuetres el que quieres seleccionar le agregas en sus atributos el atributo de selected="selected".

Saludos.
  #6 (permalink)  
Antiguo 27/10/2008, 15:15
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 17 años
Puntos: 3
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Cita:
Iniciado por GatorV Ver Mensaje
Hola gokufast,

Como dice Ronruby, tienes que ir comparando tus registros cuando los vas imprimiendo en tus <option> cuando encuetres el que quieres seleccionar le agregas en sus atributos el atributo de selected="selected".

Saludos.
Exacto!!!! eso mismo intente pongo el codigo, bueno esta con mis datos, pero se entiende, ahora no se si se lo puede mejorar.

Código PHP:
$result_1 mysql_query("SELECT depto FROM abm WHERE id=$_GET[id]"$link); 
    while (
$row_1=mysql_fetch_array($result_1))
    {  
        if (
$row_1['depto'] == $depto)
        {    echo 
"<option value='".$row_1['depto']."' selected>".$row_1['depto']."</option>";
        }
        else
        {    echo 
"<option value='".$row_1['depto']."'>".$row_1['depto']."</option>";
        }
    } 
  #7 (permalink)  
Antiguo 27/10/2008, 15:22
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Cita:
Iniciado por gokufast Ver Mensaje
Exacto!!!! eso mismo intente pongo el codigo, bueno esta con mis datos, pero se entiende, ahora no se si se lo puede mejorar.

Código PHP:
$result_1 mysql_query("SELECT depto FROM abm WHERE id=$_GET[id]"$link); 
    while (
$row_1=mysql_fetch_array($result_1))
    {  
        if (
$row_1['depto'] == $depto)
        {    echo 
"<option value='".$row_1['depto']."' selected>".$row_1['depto']."</option>";
        }
        else
        {    echo 
"<option value='".$row_1['depto']."'>".$row_1['depto']."</option>";
        }
    } 
Así es, esa era la comparación que comentaban los compañeros de arriba, sin embargo para evitar if y else yo lo hago de esta manera y es un poco más simple y con menos código

Código PHP:
$selected '';
while (
$row_1=mysql_fetch_array($result_1))
    {  
        if (
$row_1['depto'] == $depto$selected 'selected';
        echo 
"<option value='".$row_1['depto']."' $selected>".$row_1['depto']."</option>";
        }
    } 
Saludos
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #8 (permalink)  
Antiguo 27/10/2008, 15:36
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 17 años
Puntos: 3
genial gracias esta mucho mejor.

Y para un radio button?

Última edición por GatorV; 27/10/2008 a las 16:33
  #9 (permalink)  
Antiguo 27/10/2008, 16:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

El atributo es checked="checked", te recomiendo te des una vuelta por W3Schools para que aprendas la sintaxis de HTML y sus atributos.

Saludos.
  #10 (permalink)  
Antiguo 27/10/2008, 17:00
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 17 años
Puntos: 3
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

ya se que es Checked pero como "jalo" de mi BD si es un radio button o es otro?
si es masculino o femenino que el checked me salga de la opcion que esta en la BD.
  #11 (permalink)  
Antiguo 27/10/2008, 17:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Con un simple if:
Código php:
Ver original
  1. <option value="masculino" name="sexo" <?php if( $valor == "masculino" ) { ?>checked="checked"<?php } ?>
  2. <option value="femenino" name="sexo" <?php if( $valor == "femenino" ) { ?>checked="checked"<?php } ?>

Saludos.
  #12 (permalink)  
Antiguo 28/10/2008, 14:43
Avatar de gokufast  
Fecha de Ingreso: abril-2007
Mensajes: 540
Antigüedad: 17 años
Puntos: 3
Respuesta: Mostrar campo de select "selected" de una consulta con php y mysql

Gracias, me sirvio para iluminarme.

aca pongo como lo hize.

Código PHP:
$result_2 mysql_query("SELECT sexo FROM abm WHERE id=$_GET[id]"$link); 
    
$checked '';
    while (
$row_2=mysql_fetch_array($result_2))
    {
        if (
$row_2["sexo"]=="mas")
        {
        
$checked 'checked';
        echo 
"<td><input name='sexo' type='radio' value='mas' ".$checked.">Masculino";
        echo 
"<input name='sexo' type='radio' value='fem'>Femenino</td>";
        }
        if (
$row_2["sexo"]=="fem")
        {
        
$checked 'checked';
        echo 
"<td><input name='sexo' type='radio' value='mas'>Masculino";
        echo 
"<input name='sexo' type='radio' value='fem' ".$checked.">Femenino</td>";
        }
    } 
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:09.