Afficher une seule ligne et éviter les duplication
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:
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 |