Foros del Web » Programando para Internet » PHP »

Problema para traer dato especifico a un select desde una consulta

Estas en el tema de Problema para traer dato especifico a un select desde una consulta en el foro de PHP en Foros del Web. Saludos comunidad mi problema es el siguiente cuando necesito editar los valores de una consulta de MySQL que se encuentran dentro de un formulario en ...
  #1 (permalink)  
Antiguo 12/10/2014, 12:30
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Problema para traer dato especifico a un select desde una consulta

Saludos comunidad mi problema es el siguiente cuando necesito editar los valores de una consulta de MySQL que se encuentran dentro de un formulario en PHP me muestra perfectamente todos los datos que van en los input type="text" pero los que se encuentran dentro de los select no me permite visualizarlos es decir me muestra todos los valores del select pero no el especifico que esta almacenado para cada articulo.

Este es el método para mostrar los valores

Código PHP:
public function getDepartamentos() {
        try {
            
$query $this->dbh->prepare('SELECT DISTINCT d.id_dept, d.nom_dept, d.estado, a.dept FROM departamentos AS d INNER JOIN articulos2 AS a ON d.id_dept = a.dept WHERE d.estado = "s"');
            
$query->execute();
            return 
$query->fetchAll();
            
$this->dbh null;
        }
        catch(
PDOException $e) {
            
$e->getMessage();
        }
    } 
Y así imprimo los valores

Código HTML:
<select id="dept" name="dept" class="form-control"> 
Código PHP:
for ($i=0;$i<sizeof($departamentos);$i++){
        if(
$departamentos[$i]['id_dept']==$dept)$selected 'selected';{
echo 
'<option value="'.$departamentos[$i]['id_dept'].'" $selected>'.$departamentos[$i]['nom_dept'].'</option>';    
    }

Código HTML:
</select> 
Ojala alguien me pueda dar una luz sobre lo que estoy haciendo mal gracias de antemano por su colaboración.
  #2 (permalink)  
Antiguo 12/10/2014, 14:42
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problema para traer dato especifico a un select desde una consulta

me gustaria saber que valores estas recuperando:

Código PHP:
Ver original
  1. <?
  2. echo '<pre>';
  3. print_r($departamentos);
  4. echo '</pre>';
  5. ?>
  #3 (permalink)  
Antiguo 12/10/2014, 15:31
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema para traer dato especifico a un select desde una consulta

Hola Patriarka gracias por responder estos son los valores que obtengo

Código:
Array
(
    [0] => Array
        (
            [id_dept] => 1
            [0] => 1
            [nom_dept] => Sistemas
            [1] => Sistemas
            [estado] => s
            [2] => s
            [dept] => 1
            [3] => 1
        )

    [1] => Array
        (
            [id_dept] => 2
            [0] => 2
            [nom_dept] => Lanas
            [1] => Lanas
            [estado] => s
            [2] => s
            [dept] => 2
            [3] => 2
        )

)
Array
(
    [0] => Array
        (
            [id_dept] => 1
            [0] => 1
            [nom_dept] => Sistemas
            [1] => Sistemas
            [estado] => s
            [2] => s
            [dept] => 1
            [3] => 1
        )

    [1] => Array
        (
            [id_dept] => 2
            [0] => 2
            [nom_dept] => Lanas
            [1] => Lanas
            [estado] => s
            [2] => s
            [dept] => 2
            [3] => 2
        )

)
no me había fijado y los esta repitiendo que podría ser?
  #4 (permalink)  
Antiguo 12/10/2014, 15:38
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problema para traer dato especifico a un select desde una consulta

creo que lo estan imprimiendo 2 veces.
y bueno ahi tenes el array con los datos
y usaria foreach que es justamente para recorrer arrays:

Código PHP:
Ver original
  1. <?
  2. for ($departamentos as $departamento){
  3. $selected = '';
  4.         if($departamento['id_dept']==$dept)
  5. $selected = 'selected';
  6. echo '<option value="'.$departamento['id_dept'].'" '.$selected.'>'.$departamento['nom_dept'].'</option>';    
  7.    
  8. }
  9. ?>
  #5 (permalink)  
Antiguo 12/10/2014, 15:53
 
Fecha de Ingreso: noviembre-2008
Ubicación: En algún lugar del disco duro.
Mensajes: 95
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema para traer dato especifico a un select desde una consulta

Gracias por la respuesta Patriarka pero me sigue funcionando igual tengo varios días tratando de buscar solución al respecto y nada
  #6 (permalink)  
Antiguo 12/10/2014, 16:15
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problema para traer dato especifico a un select desde una consulta

bueno pero ahi tenes el array, recorrelo como vos quieras. si no podes recorrer un array cambia el rubro
  #7 (permalink)  
Antiguo 12/10/2014, 22:42
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Problema para traer dato especifico a un select desde una consulta

Cita:
no me había fijado y los esta repitiendo que podría ser?
Es por:
Cita:
return $query->fetchAll();
Debes usar:
Cita:
return $query->fetchAll(PDO::FETCH_ASSOC);
Eso es una duda de manual.

Código PHP:
Ver original
  1. $departamentos = $instance->getDepartamentos();
  2. var_dump($dept, $departamentos); // Verifica que estos valores sean los que esperas.
  3.  
  4. // echo "<select>";
  5. foreach($departamentos as $departamento)
  6.      echo "<option value=\"$departamento[id_dept]\" ".($departamento['id_dept'] == $dept ? "selected" : "").">$departamento[nom_dept]</option>";
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: dato, especifico, formulario, mysql, select
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 05:36.