Utilisation de plusieurs requetes SQL dans un Tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Utilisation de plusieurs requetes SQL dans un Tableau

Re: Utilisation de plusieurs requetes SQL dans un Tableau

par Invité » 05 nov. 2014, 16:18

Merci pour les requêtes elles sont plus fluides comme cela.

Pour la valeur garde, elle représente une durée de 24h de travaille et c'est pour cela qu'elle se retrouve dans les 3 requêtes.
Le réel problème se retrouve dans l'affichage du tableau, tous les enregistrements ne s'affiche pas correctement dans le tableau comme décrit dans le code

Re: Utilisation de plusieurs requetes SQL dans un Tableau

par ynx » 05 nov. 2014, 16:00

Salut,

Tes requêtes ne semblent pas correctes. On peut les corriger simplement comme ceci :
$requetematin = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a
                         WHERE l.agent = a.IDAgent AND typegarde IN ('Garde', '08h00 - 20h00', 'Matin')";

$requeteapresmidi = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a
                         WHERE l.agent = a.IDAgent AND typegarde IN ('Garde', '08h00 - 20h00', 'Après-Midi')";

$requetenuit = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a
                         WHERE l.agent = a.IDAgent AND typegarde IN ('Garde', '20h00 - 08h00')";
Cela dit je trouve étrange que la valeur du champ typegarde puisse être égale à 'Garde' : celle-ci ne nous donne aucune information sur la période et donc cette garde se retrouvera dans les résultats des 3 requêtes. Un problème de conception bdd ?
Dans l'idéal tu devrais pouvoir récupérer l'ensemble des gardes avec chacune leur période (marin, aprèm, nuit) en une seule et unique requête.

Bonne journée

Utilisation de plusieurs requetes SQL dans un Tableau

par BobFire » 05 nov. 2014, 15:03

Bonjour à tous,

Je souhaite afficher un planning de travaille dans un tableau avec 3 colonnes (Matin, Après-Midi, Nuit). Pour cela, je requête une table déjà remplie et execute un msqli_fecth_array pour envoyer mes resultats dans un tableau.
Malheureusement, le tableau ne me renvoie pas l'ensemble des resultats, voici mon code :
 <table width="980" style="border-collapse:collapse;">
   <tr height="15"><td width="980" colspan=3></td></tr>
   <tr>
    <td width="980" align=center class="titrepage" colspan=3>Visualisation de la liste de Garde</td>
   </tr>
   <tr>
    <td width="980" colspan=3><hr style="height:0; border:solid 2px black"></hr></td>
   </tr>
<?php

$connexion = mysqli_connect($hote,$utilisateur,$motdepasse,$bdd)
		or die ("Connexion au serveur impossible.");

$requetematin = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a 
			 WHERE l.agent = a.IDAgent AND typegarde = 'Garde' 
			 OR l.agent = a.IDAgent AND typegarde = '08h00 - 20h00' 
			 OR l.agent = a.IDAgent AND typegarde = 'Matin'";
				 
$resultatmatin = mysqli_query($connexion,$requetematin);

$requeteapresmidi = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a 
			 WHERE l.agent = a.IDAgent AND typegarde = 'Garde' 
			 OR l.agent = a.IDAgent AND typegarde = '08h00 - 20h00' 
			 OR l.agent = a.IDAgent AND typegarde = 'Après-Midi'";
				 
$resultatapresmidi = mysqli_query($connexion,$requeteapresmidi);

$requetenuit = "SELECT l.*,a.Nom, a.Prenom FROM listedegarde l, agent a 
			 WHERE l.agent = a.IDAgent AND typegarde = 'Garde' 
			 OR l.agent = a.IDAgent AND typegarde = '20h00 - 08h00'";
				 
$resultatnuit = mysqli_query($connexion,$requetenuit);
?>
    <tr>
	 <td class="Titre" width="325" align=center style="border-right:1px solid; border-bottom:1px solid">Matin</td>
	 <td class="Titre" width="300" align=center style="border-left:1px solid; border-right:1px solid; border-bottom:1px solid">Après-Midi</td>
	 <td class="Titre" width="325" align=center style="border-left:1px solid; border-bottom:1px solid">Nuit</td>
	</tr>
<?php 
while ($lignematin = mysqli_fetch_array($resultatmatin) AND $ligneapresmidi = mysqli_fetch_array($resultatapresmidi) AND $lignenuit = mysqli_fetch_array($resultatnuit))
  {
  list($idmatin,$datematin,$agentmatin,$typegardematin,$observationmatin,$nommatin,$prenommatin)=$lignematin; 
  list($idapresmidi,$dateapresmidi,$agentapresmidi,$typegardeapresmidi,$observationapresmidi,$nomapresmidi,$prenomapresmidi)=$ligneapresmidi; 
  list($idnuit,$datenuit,$agentnuit,$typegardenuit,$observationnuit,$nomnuit,$prenomnuit)=$lignematin; 

  $i2=0;
  
   if ($i2=0)
   { 

   }
   else 
   {	
	$datemodifie = TUSF ($date);
	echo "<tr>"; 
	echo "<td class=\"Titre\" width=\"300\" align=center style=\"border-right:1px solid; border-bottom:1px solid\">$nommatin $prenommatin $idmatin</td>";
	echo "<td class=\"Titre\" width=\"300\" align=center style=\"border-left:1px solid; border-right:1px solid; border-bottom:1px solid\">$nomapresmidi $prenomapresmidi $idapresmidi</td>";
	echo "<td class=\"Titre\" width=\"325\" align=center style=\"border-left:1px solid; border-bottom:1px solid\">$nomnuit $prenomnuit $idnuit</td>";
	echo "</tr>";
   }
    $i2++ ;
   }		

?>   
  </table>
Merci d'avance pour votre aide.