HTML CSS MYSQL PHP

Résolu
deep_sea Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -  
deep_sea Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   1
 
Merci infiniment
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   1
 
oui mon souci est résolu merci
c'est fait
0