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
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.
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é :)
@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 ?
@AlexJM Lui qui partait sur une jointure, on sait jamais qu'il ait besoin des infos de la table membre
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 ?
@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