AFFICHER DES MEMBRES EN FONCTION D'UNE SESSION

Résolu
ameb2908 Messages postés 81 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 13 avril 2024 - 25 sept. 2023 à 17:07
ameb2908 Messages postés 81 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 13 avril 2024 - 26 sept. 2023 à 09:49

Bonjour, 

je voudrais afficher tous les membres en dehors de la session & une fois connecter je les veux tous sauf le membre connecter.

Voici mon code :

class/utilisateurManager.php

<?php

class utilisateurManager {
    private $_db;
 
    public function __construct($db) {
        $this->setDb($db);
    }

    public function setDb(PDO $dbh) {
        $this->_db = $dbh;
    }
    
    public function readUsersIdData($id = '') {
        try {
            if(empty($id)) {
                $sql = 'SELECT id, pseudo FROM utilisateur ';
                $rs_select = $this->_db->prepare($sql);
            }
            elseif(is_numeric($id)) {
                $sql = 'SELECT id, pseudo FROM utilisateur WHERE id != :id';
                $rs_select = $this->_db->prepare($sql);
                $rs_select->bindParam(':id', $id);
                $rs_select->execute();
            }
            
            while($user_data = $rs_select->fetch(PDO::FETCH_ASSOC)) {
                $users_data[] = $user_data;
            }
            
            return $users_data;
        }
        catch(PDOException $e) {
            echo 'Une erreur est survenue lors de la requête de sélection !';
            echo '<br>';
            echo 'Message d\'erreur : ' . $e->getMessage();
        }
    }

    public function readUsersData() {
        try {
            $sql = 'SELECT id, pseudo, mail, role FROM utilisateur';
            
            $rs_select = $this->_db->prepare($sql);
            $rs_select->execute();

            while($user_data = $rs_select->fetch(PDO::FETCH_ASSOC)) {
                $users_data[] = $user_data;
            }

            return $users_data;
        }
        catch(PDOException $e) {
            echo 'Une erreur est survenue lors de la requête de sélection !';
            echo '<br>';
            echo 'Message d\'erreur : ' . $e->getMessage();
        }
    }
}

profil/membres.php

<?php
session_start();

require('../include/inc-connexion.php');
require('../class/utilisateurManager.php');

$manager = new utilisateurManager($db);

$id = $_SESSION['id'];

if(isset($id)) {
    $user_data = $manager->readUsersIdData($id);
}
else {
    $user_data = $manager->readUsersData();
}
?>
<!doctype html>
<html lang="fr">
<head>
    <title>Membres</title>
    <?php require('../include/inc-meta.php'); ?>
    <?php require('../include/inc-link.php'); ?>
</head>
<body>
    <?php require('../include/inc-menu.php'); ?>
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1>Membres</h1>
            </div>
            <?php if(!empty($user_data)) : ?>
                <?php foreach($user_data as $users_data) : ?>
                    <div class="col-3">
                        <?php echo $users_data['pseudo']; ?>
                        <div>
                            <a href="voir-profil.php?id=<?php echo $users_data['id']; ?>">Voir profil</a>
                        </div>
                    </div>
                <?php endforeach ?>
            <?php endif ?>
        </div>
    </div>
    <?php require('../include/inc-footer.php'); ?>

Merci pour votre aide.
Windows / Chrome 117.0.0.0

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 sept. 2023 à 22:11

Bonjour

Quel est ton souci exactement ?

As tu testé tes requêtes directement dans ta base (via phpmyamdin par exemple) ? Obtiens tu le résultat escompté ?

Au passage, applique ce qui est indiqué ici https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

(Tout particulièrement pour ta ligne 9)


0
ameb2908 Messages postés 81 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 13 avril 2024
26 sept. 2023 à 09:49
if(isset($_SESSION['id'])) {
    $user_data = $manager->readUsersIdData($_SESSION['id']);
}
else {
    $user_data = $manager->readUsersData();
}

Comment cela çà marche. Merci bien & bonne journée.

0