Tableau en php

Fermé
lina237 Messages postés 1 Date d'inscription mercredi 29 juillet 2015 Statut Membre Dernière intervention 29 juillet 2015 - Modifié par jordane45 le 29/07/2015 à 18:09
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 29 juil. 2015 à 18:19
Bonjour,

Voici mon problème: j'ai une base de données dans laquelle j'ai plusieurs informations que je dois afficher sur semaine mon problème est que j'aimerai juste avoir une ligne et 7 colonnes mais j'ai 7 colonnes et plusieurs lignes
Chaque fois qu'il parcours une ligne, il va à la ligne et en crée une nouvelle i ne réécris plus sur la même ligne

Voici mon code pour le tableau :

<tr>

<?php



// Connexion à la base de donnée
try
{
 $bdd = new PDO('mysql:host=localhost;dbname=mon_appli;charset=utf8', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
$dir=$_POST['direction'] ;
$nom_mpr = $_POST['name_mpr'];
//$reponse3 = $bdd->prepare("SELECT * FROM pmmprbis , mpr WHERE STR_TO_DATE(jour, '%d/%m/%Y %T') between $date_debut and $date_fin and  direction=$dir and name_mpr=$nom_mpr and pmmpr.neip = mpr.neip ORDER by jour LIMIT 0, 50");
$reponse3 = $bdd->query("SELECT p.neip ,date(STR_TO_DATE(jour, '%d/%m/%Y %T')) as journee,SUM(es) as ES ,jour,SUM(uas) as UAS, SUM(bbe) as BBE, SUM(ses) as SES, MIN(MinTSL) as MINTSL, MIN(MinRSL) as MINRSL, MAX(MaxTSL) as MAXTSL, MAX(MaxRSL) as MAXRSL,ROUND(AVG(AvgTSL)) as AVGTSL, ROUND(AVG(AvgRSL)) as AVGRSL FROM pmmprbis p , mpr m WHERE STR_TO_DATE(p.jour, '%d/%m/%Y %T') between '".$date_debut."' and '".$date_fin."' and p.direction= '".$dir."' and m.name_mpr= '".$nom_mpr."' and p.neip = m.name_mpr GROUP BY journee ");
// On affiche chaque entrée une à une SELECT neip,date(STR_TO_DATE(jour, '%d/%m/%Y %T')) as journee, SUM(es) ,SUM(MinRSL), SUM(bbe) FROM `pmmprbis` WHERE neip = 'MPR_FOUMBAN-KOUNGA_2' and direction = '3.0' and STR_TO_DATE(jour, '%d/%m/%Y %T') between '2015/06/16' and '2015/06/19' GROUP BY journee
 //$query="SELECT SUM(bbe)  FROM pmmprbis WHERE neip='".$nom_mpr."' and direction='".$dir."' ";
   // $record=mysql_fetch_row(mysql_query($query,$db));
   // echo "Somme = $record[0]";
 
while ($donnees3 = $reponse3->fetch())
{ $oday = \DateTime::createFromFormat('d/m/Y H:i:s', trim($donnees3['jour']));
 $oday->format('Y-m-d');
 ?>

 
<tr>
 
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut))){
 echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].'<br />'." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'];}?>
 </td>
  
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 1 day'))){
   echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'] ;}?>
 </td>
 
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 2 day'))){
  echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'] ;}?>
 </td>
 
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 3 day'))){
  echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'];}?>
 </td>
 
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 4 day'))){
  echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'];}?>
 </td>

 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 5 day'))){
  echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].' '." AvgRSL ".$donnees3['AVGRSL'];}?></td>
 
 <td align="center"><?php if($oday->format('Y-m-d') == date("Y-m-d",strtotime($date_debut. ' + 6 day'))){
  echo $oday->format('Y-m-d').' '."  es ".$donnees3['ES'].' '."  bbe ".$donnees3['BBE'].' '."  uas ".$donnees3['UAS'].' '."  ses ".$donnees3['SES'].'<br />'."  MinTSL ".$donnees3['MINTSL'].' '." MaxTSL  ".$donnees3['MAXTSL'].'<br />'."  AvgTSL ".$donnees3['AVGTSL'].' '." MinRSL  ".$donnees3['MINRSL'] .' '."  MaxRSL ".$donnees3['MAXRSL'].'< '." AvgRSL ".$donnees3['AVGRSL'];}?>
  </td>
  </tr> <?php

}
?>
 
<?php  

$reponse3->closeCursor();
}
// Termine le traitement de la requête
?><!--/td><td></td><td></td><td></td><td></td><td></td><td></td-->
</tr>



Merci d'avance pour votre aide


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

1 réponse

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
29 juil. 2015 à 18:19
Bonjour,

Tout dabord .. penses à faire des retours à la ligne dans ta requête .. et n'hésites pas à la "sortir" de son exécution.
Ainsi tu pourras en faire un ECHO si tu veux voir ce qu'elle contient


$sql = "SELECT p.neip 
               ,date(STR_TO_DATE(jour, '%d/%m/%Y %T')) as journee
               ,SUM(es) as ES 
               ,jour,SUM(uas) as UAS
               , SUM(bbe) as BBE
               , SUM(ses) as SES
               , MIN(MinTSL) as MINTSL
               , MIN(MinRSL) as MINRSL
               , MAX(MaxTSL) as MAXTSL
               , MAX(MaxRSL) as MAXRSL
               ,ROUND(AVG(AvgTSL)) as AVGTSL
               , ROUND(AVG(AvgRSL)) as AVGRSL 
         FROM pmmprbis p 
            , mpr m 
         WHERE STR_TO_DATE(p.jour, '%d/%m/%Y %T') between '".$date_debut."' and '".$date_fin."' 
           AND p.direction= '".$dir."' 
           AND m.name_mpr= '".$nom_mpr."' 
           AND p.neip = m.name_mpr 
         GROUP BY journee ";

//Le temps des tests :
echo " La requete est : ".$sql;

// execution de la requete :
$reponse3 = $bdd->query($sql);




Une fois cela fait ... tu lances ta page .. puis tu récupères la requête ainsi générée .. pour la tester DIRECTEMENT DANS TA BDD.
Et regarde ce qu'elle retourne..... à mon avis ... tu as plusieurs lignes dans le résultat...

Nb : Pour tester ta requête directement dans ta BDD tu peux passer par Phpmyadmin ou (si l'accès est autorisé...) par un logiciel comme heidisql.
https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql


0