Bonjour,

Je cherche à afficher une seule ligne avec des données de ma table mysql et, en bouclant, afficher une autre ligne et ainsi de suite. En gros, dans un premier temps, j'affiche tous les matériels qui ont été réservé. Et, en fonction d'une condition de disponibilité, je veux remplacer certains matériels. Par ex, j'ai le matos n°34 qui est non dispo alors je veux le remplacer par un autre matériel de la même famille qui lui est dispo. Je réussi à faire ma condition de dispo, je réussi à appeler tous les matos de la même famille, mais c'est à l'affichage que je n'arrive pas à m'en sortir...

Pour le moment, cela m'affiche tous les matos de la meme famille qui est dispo.

Mais ce que je veux faire c'est :
- imaginons que les matos 1, 2, 3, et 4 sont de la même famille.
- les matos 1 et 2 sont pas dispos
- je veux donc les remplacer par les matos 3 et 4.
- pour le moment j'arrive à afficher toute la liste donc les matos 3 et 4 au dessus de la ligne 1 et les matos 3 et 4 de nouveau, au dessus de la ligne 2.....

Comment faire pour afficher par exemple le 3 pour le 1 et le 4 pour le 2. ?

Merci pour votre aide !

Le code qui correspond à la requete pour aller chercher les matos de la même famille et les afficher (tous du coup) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
                      if (($data2->disponibilite == "pas dispo") and ($data['Multiple'] == "Non"))
                      {
                          $rendu = "non";
                          $sql_remplacement = "select m2.IdCpt,
                                 m2.NomMat,
                                 case when not exists (select null from table_resa t where t.id_materiel = m2.IdCpt) then 'dispo'
                                      when exists (select null from table_resa t
                                                where t.id_materiel = m2.IdCpt
                                                  and (:date_demprunt between t.date_d and t.date_r
                                                       or :date_deretour between t.date_d and t.date_r
                                                       or t.date_d between :date_demprunt and :date_deretour
                                                       or t.date_r between :date_demprunt and :date_deretour
                                                       or t.rendu = :rendu
                                                      )
                                                      )
                                      then 'pas dispo'
                                      else 'dispo'
                                  end as disponibilite               
                          from materiel m2
                          where m2.IdFam = :idfam ORDER BY disponibilite,IdCpt ";
                          $requete_remplacement = $bdd->prepare($sql_remplacement);
                          $requete_remplacement->execute(array("idfam"=>$data['IdFam'], "date_demprunt"=>$date_depart2->format('Y-m-d'), "date_deretour"=>$date_retour2->format('Y-m-d'), "rendu"=>$rendu));
                          //$row3 = $requete_remplacement->fetchAll(PDO::FETCH_ASSOC);
 
 
                          while($data3 = $requete_remplacement->fetch(PDO::FETCH_OBJ))
                          {
                            if (($data2->disponibilite == "pas dispo") and ($data3->disponibilite == "dispo"))
                            {
 
                                  echo '<tr id="'.$data['id_materiel'].'-'.$date_depart2->format('Y-m-d').'" style="background:green;"><td>';
                                  echo ''.$date_depart2->format('d-m-Y').' - '.$date_depart2->format('H:i').'';
                                  echo '</td><td>';
                                  echo ''.$date_retour2->format('d-m-Y').' - '.$date_retour2->format('H:i').'';
                                  echo '</td><td>';
                                  echo $data3->IdCpt;  
                                  echo '</td><td>';
                                  echo $data3->disponibilite;
                                  echo '</td></tr>';
 
                            }                          
                          } //while  data3
                      }//if pas dispo, matos de rempla