Foros del Web » Programando para Internet » PHP »

Duda con option select y base de datos

Estas en el tema de Duda con option select y base de datos en el foro de PHP en Foros del Web. Saludos. Tengo un select el cual su listado proviene de una base de datos en PostgreSQL, estoy usando lo siguiente: <?php echo "<select name=\"materiales\">\n"; $result1 ...
  #1 (permalink)  
Antiguo 18/08/2005, 09:27
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 18 años, 10 meses
Puntos: 2
Exclamación Duda con option select y base de datos

Saludos. Tengo un select el cual su listado proviene de una base de datos en PostgreSQL, estoy usando lo siguiente:

<?php
echo "<select name=\"materiales\">\n";
$result1 = pg_query($connection, "select * from materiales ");
if (pg_num_rows($result1) != 0){
While ($registro=pg_fetch_assoc($result1)) {
echo "<option value=\"".$registro['cod_material']."\">".$registro['descrip_mat']."</option>\n";
$d=$registro['descrip_mat'];
$_SESSION["des"]=$d;
}
}
echo "</select>\n\n";

?>

El hecho es que el submit lo direcciono a la misma pagina por que necesito que otros campos se llenen con informacion dependiendo de lo que se selecciono, todo eso lo hace bien. Ahora el PROBLEMA es que al seleccionar una opcion luego la lista no queda en el mismo orden, sino que se va rotando de la forma que el que selecciono se coloca de ultimo y los demas se rotan hacia arriba, siendo una lista larga y ordenada si selecciono el primero este se va de ultimo por lo que el orden se pierde. No quiero que esto suceda por que el ususario puede cambiar su seleccion, y si va haciendo varias veces lo mismo el orden se pierde.

Mi pregunta es: por que se va de ultimo el valor seleccionado??? y por ende esa rotacion???, habra una forma de evitarlo???.

Última edición por jeanclon; 18/08/2005 a las 09:43 Razón: error en titulo
  #2 (permalink)  
Antiguo 18/08/2005, 09:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
1. Al select ponle un orden: select * from materiales order by campo; para sacar los datos siempre en el mismo orden.

2. A este codigo le falta mostrar el option elegido antes.

Código PHP:
<?php
  
echo "<select name=\"materiales\">\n";
  
$result1 pg_query($connection"select * from materiales order by descrip_mat");
  if (
pg_num_rows($result1) != 0){
    While (
$registro=pg_fetch_assoc($result1)) {
        if (
$registro['descrip_mat']==$_POST['materiales'])
            echo 
"<option value= \"".$registro['cod_material']."\" selected>".$registro['descrip_mat']."</option>\n";
        else
            echo 
"<option value= \"".$registro['cod_material']."\">".$registro['descrip_mat']."</option>\n";
       
$d=$registro['descrip_mat'];
       
$_SESSION["des"]=$d;
    }
  }
  echo 
"</select>\n\n";
?>
  #3 (permalink)  
Antiguo 18/08/2005, 09:57
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 18 años, 10 meses
Puntos: 2
Muchisimas gravias claudiovega, lo de mostrar el otion elegido antes, lo he hecho con variables de sesion. solo que no lo puse para no enredar mas las cosas y de esa manera preguntar mi duda de forma concreta, que era el de evitar el desorden de la lista.
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 10:27.