Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar con selected en combo, valor de mysql en php

Estas en el tema de Mostrar con selected en combo, valor de mysql en php en el foro de PHP en Foros del Web. Hola! Espero me haya explicado un poco con el titulo!! Estoy registrando cursos en una tabla de mysql por medio de php. Al momento de ...
  #1 (permalink)  
Antiguo 02/02/2014, 19:54
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Mostrar con selected en combo, valor de mysql en php

Hola! Espero me haya explicado un poco con el titulo!!

Estoy registrando cursos en una tabla de mysql por medio de php.
Al momento de editar los datos me muestra perfectamente todos los datos que van en los input="text", pero quiero que tambien muestre seleccionada en el combobox la opcion que tengo guardada en la bd.

De verdad he buscado info sobre esto pero no he logrado hacerlo.

Este es mi codigo donde muestro el combo:

function cursos() {
$consulta=("SELECT * FROM name_cursos ORDER BY curso asc");
$resultad=mysql_query($consulta);

echo "<select name='cur' id='cur'>";
echo "<option value='0'>Seleccione</option>";
while($registro=mysql_fetch_array($resultad))
{
$id_c=$registro[0];

echo "<option value='$registro[0]'>$registro[1]</option>";
}
echo "</select>";
}

Sé que en esta linea:
echo "<option value='$registro[0]'>$registro[1]</option>";
debo poner el condicional donde compare las opciones pero no lo he podido solucionar hasta el momento..

Este es el codigo donde se trae la info del curso:
$sql=mysql_query("SELECT * FROM cursos WHERE id='$_GET[id]'");
$resp=mysql_fetch_array($sql);

$id_cur=$resp[1]; //Esta es una de las variables a comparar....

Les agradezco inmensamente su ayuda!! Saludos
  #2 (permalink)  
Antiguo 02/02/2014, 21:05
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mostrar con selected en combo, valor de mysql en php

Solamente necesitas hacer una simple comparación y asignar la selección a la opción que corresponda:

Código PHP:
Ver original
  1. if ($id_cur == $registro[0]){
  2.     $selected = 'selected';
  3. }
  4. else{
  5.     $selected = '';
  6. }

Y en cada opción, añades a la variable $selected:

Código PHP:
Ver original
  1. echo "<option value='$registro[0]' $selected>$registro[1]</option>";

De este modo, la opción cuyo valor de $registro[0] coincida con el de $id_cur, quedará seleccionado.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 03/02/2014, 04:52
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Mostrar con selected en combo, valor de mysql en php

Gracias por la respuesta! Pero lo probé y nada que funciona no se que estaré haciendo mal.

Aquí mi código con tu sugerencia:

Código PHP:
require ("../sesion/conexion.php");

$uno=mysql_query("SELECT * FROM cursos WHERE id='$_GET[id]'");
$arr=mysql_fetch_array($uno);
$cur=$arr['id_curso'];

function 
cursos() {
    
$consulta=("SELECT * FROM name_cursos ORDER BY curso asc");
    
$resultad=mysql_query($consulta);

    echo 
"<select name='cur' id='cur'>";
    echo 
"<option value='0'>Seleccione</option>";
    while(
$registro=mysql_fetch_array($resultad)) {
        
$id_c=$registro['id_curso'];
    
            if (
$cur == $id_c){
            
$selected 'selected';
            }
            else{
                
$selected '';
            }

        echo 
"<option value='".$registro[0]."' $selected>".$registro[1]."</option>";
    }
    echo 
"</select>";

Ven mi error? O alguna otra idea?
  #4 (permalink)  
Antiguo 03/02/2014, 09:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mostrar con selected en combo, valor de mysql en php

El error está en que estás tratando a la variable $cur como si fuera global, dentro de la función no tiene un valor asignado y por eso no se selecciona la opción. Al momento de invocar a la función, pásale el valor de la variable o haz ambas consultas dentro de la función.

Esta información te puede ser de mucha utilidad: http://www.php.net/manual/es/languag...bles.scope.php

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 03/02/2014 a las 12:20
  #5 (permalink)  
Antiguo 03/02/2014, 19:29
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Mostrar con selected en combo, valor de mysql en php

Graaaaciaasss Alexis88!!!

Resuelto mi problema, tenias razón, solo metí la consulta dentro de la función y ahora si muestra el dato actual de la bd!!

Muchisimas Gracias!

Etiquetas: combo, mysql, registro, select, selected, sql, tabla, valor, variable
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 04:10.