Souci taleaux en php...je galère!

Souci taleaux en php...je galère! - PHP - Programmation

Marsh Posté le 08-05-2008 à 21:36:24    

Bonjour à tous,
 
Bon voila mon souci :
 
Je suis en train de créer un planning en php.
Le but est que l'utilisateur puisse sélectionner le jour, le mois et l'année qu'il souhaite pour voir s'afficher le planning de la semaine où se trouve le jour qu'il a sélectionné.
Mon souci est que je n'arrive pas à afficher les résultats de la requête.
En effet, tout d'abord je crée un tableau $tabJours et $plagehoraire qui contiennent respectivement les jours de la semaine(qui seront fixe sur le planning = balise <th></th> ) et les plages horaires(fixes aussi).
Ce qui donne en fait un tableau avec à gauche un colonne avec une cellule pour chaque heure(de 8h00 à 20h00 = 13 cellules verticales) et en haut une ligne avec les jours de la semaine(soit 7 cellules à l'horizontales plus une cellule vide en début de tableau pour ne pas que la collone heures ne chevauche pas sur le lundi).
 
Je récupère la date sélectionnée par l'utilisateur, je la met en timestamp, puis grâce à ce timestamp je récupère le numéro de la semaine dans lequel se situe le jour afin de récupérer tous le jours présents dans ce même numéro de semaine...pas très claire je crois...  
 
Ensuite grâce à cela, je lance une requete qui sur la table note(table où se trouve les notes des jours) puis fait un "while" sur le mysql_fetch_array. Dans cette boucle je récupère le numéro de la semaine des résultat par le même procédé enoncé plus haut afin de le comparer par "if" avec le numéro de semaine de la date sélectionnée par l'utilisateur.
Si le "if" est vrai alors je récupère le numéro du jour de la date se trouvant dans la base de données. Ensuite je crée une boucle "for" allant de 1 à 8 par pas de +1. Puis lorsque le "for" est égale au numéro du jour(vérifié par un "if" dans le "for" ) je crée une autre boucle "for" qui va de 1 à 15 par pas de +1. Puis On compare l'heure de la note de la base avec celle du "for" et une fois comparaison vrai alors on la note se trouvant dans la requete au bon endroit.
 
mais mon souci est que je n'arrive pas à faire cette dernière action(de mettre au bon endroit le résultat de la requete). Je pensai le faire par tableau, c'est à dire déclarer un tableau dès le départ qui permettrait, si la requete tombe bien, à l'endroit où se croise la ligne de l'heure et la colonne du jour.
 
Mais je n'arrive pas à créer ce fichu tableau!
 
j'espère que quelqu'un pourra m'aider.
 
Merci par avance pour votre aide à tous
 
Pour mieux comprendre, voici le code que j'ai essayé d'expliquer plus haut :  
 
<table width="100%" border="1" bgcolor="#437699" cellpadding="5%" cellspacing="5%">
  <tr>
   <td></td>
  <?
   $tabJours = array('lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche');
   $plageHeure = array(1=>'7h00',2=>'8h00',3=>'9h00',4=>'10h00',5=>'11h00',6=>'12h00',7=>'13h00',
   8=>'14h00',9=>'15h00',10=>'16h00',11=>'17h00',12=>'18h00',13=>'19h00',14=>'20h00');
   $tabInsertion = array();
   
   //CREATION DE LA LIGNE DES JOURS FIXES
   for($j = 0; $j < 7; $j++)
   {
    ?>
     <th class="lienblanc" width="10%"><? echo $tabJours[$j];?></th>
    <?
   }
   //CREATION DE LA COLONNE DES PLAGES HORAIRES
   for($h = 1; $h < 15; $h++)
   {
    ?>
     <tr>
      <td class="lienblanc" width="2%"><? echo $plageHeure[$h];?></td>
     </tr>
    <?
   }
  ?>
  </tr>
   
  <?
   $reqNote = mysql_query('SELECT * FROM note');
   while($repNote = mysql_fetch_array($reqNote))
   {
    $numSemaine = date("W", $repNote['Date']);
     
    if($numSemaine == $semaine)
    {
     $nomJour = date("w", $repNote['Date']);
     
     for($j = 1; $j < 8; $j++)
     {
      if($nomJour == $j)
      {  
       for($h = 1; $h < 15; $h++)
       {
        $recupHeure = substr($repNote['Heure'],0,2); //récupère les deux premier chiffres de la chaine $repNote['Heure']
        $recupPlageHeure = substr($plageHeure[$h],0,2); //idem pour le contenu de l'indice du tableau plageHeure
        if($recupPlageHeure == $recupHeure)
        {
         
         ?>
          <!----<td><? // echo $repNote['Note'];?></td>---->
         <?
        }
       }
      }
     }
    }
   }
  ?>
 </table> [/fixed][/fixed]

Reply

Marsh Posté le 08-05-2008 à 21:36:24   

Reply

Marsh Posté le 09-05-2008 à 14:25:45    

Salut,
 
Ton problème ne vient pas du PHP, mais du HTML. Tu ne sais pas utiliser correctement les tableaux.
 
Je te conseille de lire une doc a ce sujet.
 
Un petit indice pour t'aider quand même : En html, tu construit un tableau ligne par ligne,  tu ne peux pas comme tu as essayé de le faire de remplir la première colonne de tout les lignes, puis de remplir les autres colonnes.
Une fois la balise de ligne (<tr> ) fermée, tu ne peux plus toucher a la ligne.
 
Et j'attire ton attention sur la magnifique balise cpp qui rendra ton code beaucoup plus lisible dans tes messages

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed