[ PHP & MYSQL PDO ] recupération Session membre

Par O. SASHA, il y a 9 ans


Bonjour cher tous , je débute en programmation et j'ai besoin de votre aide pour la gestion d'un espace membre pour des commerciaux en PHP. Pour cela j'ai certains tutoriels de grafikart à ce sujet qui m'ont très bien aider d’ailleurs .

En effet, Ce que je souhaiterais faire c'est de permettre à chaque membre d'afficher sa liste de clients qu'il aurait eu à enregistrer et aussi le modifier.

De ce fait j'ai pu déjà créer les différentes tables membre et client qui sont les suivantes :

<!-- PAGE afficher_liste_client.php -->

<div class="panel panel-info "> <div class="panel-heading"> liste des clients </div> <a href="enregistrer_client.php"><button class="btn btn-info"><i class="fa fa-plus"></i> ajouter des clients</button></a> <table class="table table-striped"> <tbody> <?php include ('include/dbbconnect.php'); if(isset($_SESSION['id'])) { $query = "SELECT * FROM membre WHERE INNER JOIN client ORDER BY 1"; $ps = $con->prepare($query); $ps->bindParam(':id', $_SESSION ['pseudo']); $ps->setFetchMode(PDO::FETCH_ASSOC); $doHeader = true; if ($doHeader) { echo "<table>"; echo "<thead><tr><th>nom</th><th>entreprise</th><th>fonction</th><th>email</th><th>contact</th><th>ville</th></tr> </thead>"; foreach ($ps as $row) { echo "<tr>"; <td><?=$row ['nom'];?></td> <td><?=$row ['entreprise'];?></td> <td><?=$row ['fonction'];?></td> <td><?=$row ['email'];?></td> <td><?=$row ['contact'];?></td> <td><?=$row ['ville'];?></td> <td><?=$row ['produit'];?></td> <td><?=$row ['prix'];?></td> <td><?=$row ['payer'];?></td> <td><?=$row ['reglement'];?></td> <td><?=$row ['caisse'];?></td> <td><?=$row ['date'];?></td> echo "</tr>\n"; } echo "</table>"; } else { echo "<p> Error</p>"; } } ?> </p> <br/> </tbody> </table> </div> </div>

La page du formulaire d'ajout de client a été crée, l'ajout des donnée se font sans aucun problème dans la base de donnée.
Mais rien ne s'affiche lorsque je lance la page ( afficher_liste_client.php ), je ne sait pas quoi faire .
Merci d'accorder de l'importance à ce poste .

Merci beaucoup d'avance de votre aide

8 réponses

AlexJM, il y a 9 ans

@Kareylo ah d'accord, non je demandais car je connais certaines personnes qui partent directement sur une jointure même si il n'y en a pas spécialement besoin

Carouge10, il y a 9 ans

Bonjour,

C'est au niveau de la requête SQL que ça coince.
Il faut bien sélectionner les clients en fonction de l'id du membre or dans la requête, il n'y a pas cette id.

Kareylo, il y a 9 ans

Premièrement, ta requête n'est pas correcte

$query = "SELECT * FROM membre INNER JOIN client ON client.id_membre=membre.id WHERE membre.id = :id ORDER BY client.id_client DESC"; $ps = $con->prepare($query); $ps->bindParam(':id', $_SESSION ['id']); $ps->setFetchMode(PDO::FETCH_ASSOC);

Devrait faire l'effet escompté :)

AlexJM, il y a 9 ans

@Kareylo pourquoi faire une jointure ? Pourquoi ne tout simplement pas faire ceci :

$query = "SELECT * FROM client WHERE id_membre = :id ORDER BY id_client DESC"; $ps = $con->prepare($query); $ps->bindParam(':id', $_SESSION ['id']); $ps->setFetchMode(PDO::FETCH_ASSOC);

Enfin après je trouve ça plus simple,

Note:
@O. SASHA
Client(id_client, id_menbre, fonction, email, contact, ville, produit, prix, payer, reglement, date)

c'est normal que le champ s'appelle id_menbre et non id_\membre ?

Kareylo, il y a 9 ans

@AlexJM Lui qui partait sur une jointure, on sait jamais qu'il ait besoin des infos de la table membre

Carouge10, il y a 9 ans

De plus, le 1er "echo du < tr>" est fermé trop vite.

Famian, il y a 9 ans

Sans oublier son

$doHeader = true;

Qui n'est jamais modifie et qui vaudra toujours true. Autant virer la condition

if ($doHeader) {

Par ailleurs l'auteur du sujet ne donne pas signe de vie, les reponses que nous donnons l'aide vraiment ?

O. SASHA, il y a 9 ans

Merci à tous pour vos différentes réponses je corrige et je vous fais un retour