TransWikia.com

mostrar datos pdo php select

Stack Overflow en español Asked by eduardo manjarres on January 1, 2022

Estoy terminando un sistema web pero tengo un problema en el select en vez de cargarme las tres opciones que son administrador , estudiante , docente , me carga mas de una sola vez.

Aquí está el código model

public function getObtenerDatosUsuario()
    {
        $rows=null;
        $statement=$this->db->prepare("SELECT * FROM users");
        $statement->execute();
        while($result=$statement->fetch())
        {
            $rows[]=$result;
        }
        return $rows;
    }

Visualización en html, código php select

 <?php
                          $Usuarios = $ModeloUsuarios->getUsers();
                          if($Usuarios!=null){
                            foreach($Usuarios as $Usuario){

                              ?>
                               <option value=""><?php echo $Usuario['perfil'];?></option>
                               
                               
                              <?php
                            }
                          }
                        ?>
                    </select>

No me carga las 3 opciones, me carga las mismas opciones una y otra vez como se muestra en la imagen
introducir la descripción de la imagen aquí

Tabla users

esta es la tabla users

One Answer

Para tu caso lo que aplica es hacer:

SELECT DISTINCT perfil FROM user

y al momento de desplegar en el <option> este mismo campo tendrías que colocarlo como value y como descripción. Es decir, deberá ser:

<option value="<?php echo $Usuario['perfil'];?>"><?php echo $Usuario['perfil'];?></option>

Cuidado que en tu código que proporcionas value no lo estas asignando; por tanto cuando quieras usar el valor siempre obtendrás cadena vacía sin importar cual eligan.

Te comento, el detalle que tienes parece ocurre por que (conforme a imagen que muestras) el campo perfil parece es ingresado no es de un catálogo; digamos si tuvieras tabla catálogo (sin entrar mucho a detalle):

Catálogo Perfiles

Perfiles (idPerfil [este seria un entero de autoincremento], Descripcion [ este seria texto])

y en tu tabla users en vez de campo perfil la renombras y la relacion con su correspondiente (en esta sugerencia) idPerfil; con consultar SELECT * FROM Perfiles no tendrías tantas repeticiones. Así, usarias:

/* Obtener todos los perfiles */
$perfiles = $ModeloPerfiles->getPerfiles(); /* Esto seria crearlo con SQL antes mencionado */

<option value="<?php echo $perfiles['idPerfil'];?>"><?php echo $perfiles['Descripcion'];?></option>

Answered by RobertoLeOr on January 1, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP