Besoin d'aide pour la gestion espace membre des commerciaux en PDO

sasha

sasha Le 7 août 2016 à 01:26 (Édité le 25 janvier 2019 à 17:52)

 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 donc suivi les quatre tutos de PRIMFX à ce sujet qui m'ont très bien aider d’ailleurs .
En effet, ce que souhaiterais faire, c'est permettre au membre ( commercial) étant   connecté de  pouvoir voir sur sa session la liste des clients qu'il a inscrit, aussi pouvoir de ce fait à partir d'un formulaire  enregistrer ses clients. 
Merci beaucoup de votre aide et surtout à PrimFx pour ces tutos qui sont  facile à comprendre.
TheOldNoob

TheOldNoob Le 10 août 2016 à 23:06

Salut Sasha,

En gros, ce que tu souhaite faire, c'est que chacun de tes commerciaux puissent se loguer sur ton site, puis ajouter des clients dans leur site, ainsi que voir la liste de tout ses clients (peut-être aussi un formulaire de recherche...)?

Donc, tu doit créer sur ton site, un systeme assez simple d'utilisateur, avec nom, prénom, mail, mot de passe, etc..
Puis, une page avec un formulaire qui permettra d'inséré les informations de chaque clients afin dans ta base de données...
Puis, une page simple avec un tableau qui va afficher tout les clients de ton commercial.
La je dirais que tu a deux solution, soit tu créer une table client différentes pour chacun de tes commerciaux, soit tu créer une seule table clients, mais tu va devoir faire une jointure pour définir quel commercial a créer se clients afin de n'afficher que les clients de se commercial.

Il n'y a rien de trop compliquer, mais pour bien faire, tu va devoir aussi leur permettre d'edité un clients (en cas d'erreur de saisie).
sasha

sasha Le 14 août 2016 à 17:25

Salut TheHoldNood,
Merci pour ta réponse qui m'éclaire ,ainsi, ce que je souhaiterais faire c'est de permettre à chaque commercial d'afficher sa liste de clients  qu'il aurait eu à enregistrer et le modifier. 
<!-- PAGE afficher_liste_client.php -->
<?php

//require_once('include/dbconnect.php');
  //connection au serveur


session_start();
if(!isset($_SESSION['id'])) {
    header('Location: connexion.php');
}
?>
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Liste de mes clients</title>

    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <link href="css/bootstrap.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">


    <link href="css/font-awesome.css" rel="stylesheet" type="text/css" />
    <!-- Ionicons -->
    <link href="css/ionicons.css" rel="stylesheet" type="text/css" />
    <!-- Theme style -->
    
</head>
<body>

<nav class="navbar navbar-custom  navbar-fixed-top ">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <a class="navbar-brand"  href="accueil.php">AgoloCRM</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li class="username"><a class="active" href="accueil.php"><span class="glyphicon glyphicon-user" aria-hidden="true"></span>  <B>Salut <?php  echo $_SESSION['pseudo']; ?> </B></a></li>
            </ul>

            <!--<ul class="nav navbar-nav navbar-left active">
                      <li class="active"><a href="client.php">Mes clients <span class="glyphicon glyphicon-userr" aria-hidden="true"></span></a></li>
                  </ul>-->
            <ul class="nav navbar-nav navbar-left active">
                <li class="active"><a href="client.php">Mes clients <span class="glyphicon glyphicon-userr" aria-hidden="true"></span></a></li>
                <li class="active"><a href="rdv.php">Mes rendez-vous</a></li>
                <li class="active"><a href="historique.php">Historique</a></li>
                
            </ul>
            <ul class="nav navbar-nav navbar-right">


                   <!--<li> <input type="search" class="form-control search-form"  placeholder="Rechercher" name="name"/></li>-->

                <li class="active"><a href="searchhhhh.html"   role="button" aria-haspopup="true" aria-expanded="false"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></a></li>
                <li><a href="logout.php">logout <span class="glyphicon glyphicon-user" aria-hidden="true"></a></li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>
<body>

    <div class="col-md-12 col-xs-12 col-lg-offset-" style="margin-top:150px;">
        <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/dbconnect.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>

</body>
</body>
</html>


  De ce fait j'ai pu déjà créer les différentes tables membre et client qui sont les suivantes :
- Membre( id, pseudo, mail, motdepasse)
- Client(id_client, id_menbre, fonction, email, contact, ville, produit, prix, payer, reglement, date)

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 à mon poste  
TheOldNoob

TheOldNoob Le 16 août 2016 à 03:16

Salut Sasha,

Dans l'idée, plutot que d'aller chercher avec une jointure dans la table membre, pourquoi ne pas récupérer dans ta table client, uniquement les clients ayant l'ID de ton commercial?
$ps = $con->prepare('SELECT * FROM client WHERE id_membre = $_SESSION['id'] ORDER BY date');
Si je suis pas trop con (vu l'heure) ça doit récupérer et afficher uniquement les clients dont l'id membre est = a celle du membre qui a ouvert la session.

Question, ton ORDER BY 1, le 1 correspond quel champs dans ta table ?

Ensuite, tu a quelque soucis de balise php notament sur la ligne 101 ton td a un probleme 😋
Pour moi, tu ferme une balise php ligne 92, tu vire les echo ligne 95 et 96 histoire d'avoir une coloration sytaxique correcte pour ton html(du coup plus facile pour voir les erreurs)
Tu réouvre ton php devant ton foreach ligne 97 et tu le ferme a la fin de la même ligne.
Tu retire l'echo de la ligne 98

Ligne 114 il manque une ouverture de balise php
sasha

sasha Le 25 août 2016 à 01:58

Salut  TheHoldNood, 
Merci encore une fois pour aide je teste votre  solution proposée et je vous reviens.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte