HTML CSS MYSQL PHP

Résolu/Fermé
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 - Modifié le 26 déc. 2018 à 13:54
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 - 27 déc. 2018 à 09:57
bonjour ,
j'ai envie d'afficher dans un tableau pour chaque employé les équipements qui lui sont affecté
exemple
Employé xx
-PC
-Dique dure
-Imprimante
Employé yy
-Fax
-Scanner
-Ordinateur de bureau

mon problème les équipements s'affichent mais a chaque fois le nom de employé se répète au nombre des équipements qui sont affecté
exemple :
xx
-PC
xx
-Disque dure
xx
-Imprimante

donc ma question ou le problème au niveau des css ou bien HTML ou bien l'affichage

      <table class="table table-hover" id="task-table" border=1>
            <thead>
   
                               <tr style="" >
                                  <th Style="font-family:Times; font-style: italic; font-size: 15px;text-align:center">Désignation </th>                               
                                  <th Style="font-family:Times; font-style: italic; font-size: 15px;text-align:center">Quantité</th>
                                  <th Style="font-family:Times; font-style: italic; font-size: 15px;text-align:center">Code équipement</th>
                                </tr>
       
        
               </thead>
            <tbody>
<?php
$requete="SELECT `equipement`.`code_equip`,`quantite`,`equipement`.`designation_sous_categorie`,`designation_marque`, `Nom_emp`,`Prenom_emp`,`serie` FROM `sous_categorie` INNER JOIN `equipement` INNER JOIN `equip_affect_emp` INNER JOIN `employé` ON `sous_categorie`.`designation_sous_categorie`=`equipement`.`designation_sous_categorie` AND `equipement`.`code_equip`=`equip_affect_emp`.`code_equip` AND `equip_affect_emp`.`Id_emp`=`employé`.`Id_emp` WHERE `sous_categorie`.`id_categorie`=3 order by `Nom_emp`";
  $resultat = $conn->query($requete) or die ('Erreur '.$requete.' '.$conn->error);
 while($row = mysqli_fetch_assoc($resultat))
 {
  echo '
                 <tr> <td colspan=12 style="background-color: #808080">'.$row['Nom_emp'].' '.$row['Prenom_emp'].' </td></tr>
    
      <td>'.$row['designation_sous_categorie'].'   '.$row['designation_marque'].'   '.$row['serie'].'    </td>
       <td>'.$row['quantite'].' </td>
       <td>'.$row['code_equip'].' </td>';
 }
 ?>
            </tbody>
                         </table>


A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 déc. 2018 à 14:09
Bonjour,

Une première solution serait d'utiliser un IF pour vérifier si le nom précédent correspond au nom actuel. Si tel est le cas... ne pas le réafficher.

Une autre solution est de reconstruire un array un peu mieux ordonné
par exemple :
$requete="SELECT `equipement`.`code_equip`,`quantite`,
                 `equipement`.`designation_sous_categorie`,
                 `designation_marque`, 
                 `Nom_emp`,
                 `Prenom_emp`,
                 `serie` 
          FROM `sous_categorie` INNER JOIN `equipement` 
          INNER JOIN `equip_affect_emp` 
          INNER JOIN `employé` ON `sous_categorie`.`designation_sous_categorie`=`equipement`.`designation_sous_categorie` 
            AND `equipement`.`code_equip`=`equip_affect_emp`.`code_equip` 
            AND `equip_affect_emp`.`Id_emp`=`employé`.`Id_emp` 
          WHERE `sous_categorie`.`id_categorie`=3 
          ORDER BY `Nom_emp`";
if(!$resultat = $conn->query($requete)){ 
  die ('Erreur '.$requete.' '.$conn->error);
}

//On commence par recréer un Array contenant les informations mieux ordonnées...
$aUserMat = array();
 while($row = mysqli_fetch_assoc($resultat))
 {
    $aUserMat[$row['Nom_emp'].' '.$row['Prenom_emp']] = array('designation_sous_categorie'=>$row['designation_sous_categorie'], 
                                                            'designation_marque'=>$row['designation_marque'], 
                                                            'serie'=>$row['serie'],
                                                            'quantite'=>$row['quantite']
                                                            'code_equip'=>$row['code_equip']);
  }
 
 //on utilise cet array pour générer l'affichage
 foreach($aUserMat as $User=>$aMat){
   echo '<tr> 
           <td colspan="12" style="background-color: #808080">'.$User.' </td>
        </tr>';
    foreach($aMat as $mat){
       echo '<tr> 
               <td>'.$mat['designation_sous_categorie'].'   '.$mat['designation_marque'].'   '.$mat['serie'].'    </td>
               <td>'.$mat['quantite'].' </td>
               <td>'.$mat['code_equip'].' </td>
             </tr>';
    }
 }



Au passage, je t'invite vivement à lire ceci :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.

0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
26 déc. 2018 à 14:59
Merci car le nom s'affiche une fois , mais pleins d'érreur
Warning: Illegal string offset 'designation_sous_categorie' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\bst_gestion\BST\liste_inforrmatique.php on line 84

Warning: Illegal string offset 'designation_marque' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\bst_gestion\BST\liste_inforrmatique.php on line 84

Warning: Illegal string offset 'serie' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\bst_gestion\BST\liste_inforrmatique.php on line 84

Warning: Illegal string offset 'quantite' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\bst_gestion\BST\liste_inforrmatique.php on line 85

Warning: Illegal string offset 'code_equip' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\bst_gestion\BST\liste_inforrmatique.php on line 86
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 déc. 2018 à 15:23
Petite erreur
  $aUserMat[$row['Nom_emp'].' '.$row['Prenom_emp']][] = array('designation_sous_categorie'=>$row['designation_sous_categorie'], 
                                                            'designation_marque'=>$row['designation_marque'], 
                                                            'serie'=>$row['serie'],
                                                            'quantite'=>$row['quantite']
                                                            'code_equip'=>$row['code_equip']);
  
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
26 déc. 2018 à 15:44
Merci infiniment
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 déc. 2018 à 18:00
Encore une fois... si ton souci est résolu... pense à le clore.
Comment ça se fait qu'à chacune de tes questions je doive te le rappeler ??
Merci d'y penser par toi même...

https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/

.
0
deep_sea Messages postés 201 Date d'inscription mardi 10 mai 2016 Statut Membre Dernière intervention 10 décembre 2022 1
27 déc. 2018 à 09:57
oui mon souci est résolu merci
c'est fait
0