Tableau et informations PHP / SQL

Résolu
Bonjour,
Alors voilà, je créer un petit site de vente et lors qu'il achète un objet, ils peuvent voir ce qu'ils ont acheter et combien grâce à une table nommé : command_db.
Je voudrais qu'il puisse voir tout ce qu'ils ont acheté à partir de cette table et que les informations viennent sur un tableau avec une ligne d'une couleur différente.

Par exemple, prenons le https://openclassrooms.com/fr/
Le table au est Bleu / Blanc / Bleu Etc ... (ligne)
Je ne vois pas vraiment comment faire pour mettre les informations une ligne sur deux d'une couleur différente.

De plus je ne vois pas comment trier tout les achats (trier par email) =$
La table contient ID de l'achat(ID), email (Email), numéro de commande (GUID) ainsi que l'heure(Heure) et la date(Date).
Ce que j'ai mis entre les parenthèse sont les noms des colonnes.

Merci d'avance,
Cordialement MastercroW.

19 réponses

  1. si les mail de ceux qui commande sont unique tu fais ton select par rapport a l'email comme ça tu aura toutes les commande faites par cet email et tu les affiche dans un tableau :

    $retour_messages=mysql_query('SELECT * FROM ta_table WHERE email = "'.$_SESSION['email'].'" ');
    
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) 
    {
    ?>
    
    <center>
    <table border="2" width="800">
    <tr>
    <th style="height: 25px">ID</th>
    <th style="height: 25px">Email</th>
    <th style="height: 25px">Guid</th>
    <th style="height: 25px">Heure</th>
    <th style="height: 25px">Date</th>
    </tr>
    <tr>
    <td width="250" align="center"><?php echo $donnees_messages['ID']; ?></td>
    <td width="250" align="center"><?php echo $donnees_messages['Email']; ?></td>
    <td width="250" align="center"><?php echo $donnees_messages['GUID']; ?></td>
    <td width="250" align="center"><?php echo $donnees_messages['Heure']; ?></td>
    <td width="250" align="center"><?php echo $donnees_messages['Date']; ?></td>
    </tr>
    </table>
    <br/>
    </center><?php
    }?>
    


    a peu de chose près ça doit ressembler a ça.
    1. Salut.

      Pour le tableau, voilà 3 solutions :
      - Utiliser un modulo pour savoir si le numéro de la ligne est pair ou pas
      <?php
      $i = 0;
      while($result = mysql_fetch_assoc($request)) {
          $classe (($i % 2) == 0) ? 'clair' : 'fonce' ;
          echo '<tr class="'.$classe.'">';
          // ...
      }
      ?>
      <style type="text/css">
      tr.fonce {
          background: black;
          color: white;
      }
      
      tr.clair {
          background: white;
          color: black;
      }
      </style>


      - Utiliser la pseudo-classe :nth-child() en CSS :
      tr:nth-child(odd) {
          color: white;
          background: black;
      }


      - En JS, avec jQuery par exemple :
      $("#tableau tr:nth-child(odd)").css({
          'background' : 'black',
          'color' : 'white',
      });
      1. Et niveau du triage par rapport a l'email de la personne qui commande?
        1. tu fais une requete type select :
          select * from ta_table where email = mail de la personne
          et peux rajouter un order by par rapport a l'id
      2. Comment identifies-tu la personne ?
        Avec les sessions, cookies ou une autre méthode ?
        1. Que stockes-tu dans les sessions ?
          L'id du client ? L'id de son caddie ? Son email ?
          1. Enchanté,

            Si tu affiche les articles via une base de donnée, le triage va se faire au niveau de ta requete SQL. Par exemple, si tu veut trier par prix, tu aura un truc du genre SELECT id, prix, article FROM table ORDER BY prix DESC.

            En ce qui concerne la couleur des lignes, il te faut un code de ce genre la :

            $couleur=1
            while(ta requete)
            {
            if ($couleur%2 == 1) echo"<p class=blanc>article</p>";
            else echo"<p class=blanc>article</p>";
            i++;
            }

            C'est OK ou tu veut plus d'infos ?
            1. Avion pour répondre à ta question, je stock son Email, et l'id de son caddie (numéro commande).
              Ensuite pour répondre à toi, Kemich, je sais faire ceci, mais ceci va m'afficher toutes les commandes même des autres clients.
              1. D'abord il suffit de sélectionner tous les éléments dont (where) l'id du caddie (guid) est égal à $_SESSION['guid'] ...
                1. Okai, merci mais peux tu me donner un exemple =$ ?
                  Sinon quand je met
                  SELECT GUID FROM command_db ORDER BY Email='$email' DESC
                  il y a un Resource id #6 a la place des GUID ...

                  Merci d'avance
                  1. Merci beaucoup de ta réponse et cela marche ! Mais pour le visuel, sais tu comment mettre les tableaux de couleur différente comme je l'ai dit en haut ?
                    1. comme avion f16 l'as dis, tu peux toujour essayer de compter les lignes et pour chaque lignes pairs mettre une couleur différéntes
                    2. Je ne vois pas comment ça marche enfête =$
                  2. Enfête ce n'est pas grave j'ai trouvé une autre solution, mais ce qui me pose problème c'est que je veux séparé
                    <th style="height: 25px">ID</th>
                    <th style="height: 25px">Email</th>
                    <th style="height: 25px">Guid</th>
                    <th style="height: 25px">Heure</th>
                    <th style="height: 25px">Date</th>

                    de
                    <td width="250" align="center"><?php echo $donnees_messages['ID']; ?></td>
                    <td width="250" align="center"><?php echo $donnees_messages['Email']; ?></td>
                    <td width="250" align="center"><?php echo $donnees_messages['GUID']; ?></td>
                    <td width="250" align="center"><?php echo $donnees_messages['Heure']; ?></td>
                    <td width="250" align="center"><?php echo $donnees_messages['Date']; ?></td>


                    En clair je veux que l'Email; Guid; Heure et Date n'apparaît qu'une seul fois, et que les données apparraîssent en dessous des mots. Dur a expliquer mais vois tu ce que je veux faire ?
                    1. désolé du retard si tu as trouvé la soluce, il suffit juste de mettre l'entête <th></th> avant la boucle sous forme d'echo php