planning hebdomadaire

Répondre
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Bonjour tout le monde et happy 14 juillet (pour ceux qui n'aiment pas G.Brassens)
je reviens avec une question concernant une requete SQL que je souhaiterai la plus simple et optimisée possible pour alimenter un tableau de planning hebdo :
lundi, mardi, mercredi... dimanche
et en ordonnées, les heures de chaque jour (8h > 23h).
Je pensais faire une requete par heure et filtrer les événements par $jour pour les afficher dans la bonne case du planning mais je suis sur qu'il y a mieux à faire.
Je n'ai pas encore commencé à coder mais vous pouvez voir le layout du planning hebdo ici.

Merci pour vos suggestions
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
C'est remoi, j'ai un peu avancé sur mon probleme, je vous soummets la page. Si vous pouvez m'éclairer sur la requete SQL, ce serai cool parce que pour l'heure, ça m'affiche le cours tous les jours de la semaine. Et j'aimerai qu'il ne s'affiche QUE dans la colonne du jour concerné :p)
  1. <?php
  2. include_once ('_connexion.php');  
  3. $table='2008_planning_cours'; // nom de la table contenant les activités  
  4.  
  5. echo '<tr><td>&nbsp;</td><td>lundi</td><td>mardi</td><td>mercredi</td><td>jeudi</td><td>vendredi</td><td>samedi</td><td>dimanche</td>';  
  6.  
  7. echo '</tr>';  
  8. mysql_connect("$host", "$user", "$password");  
  9. mysql_select_db("$base");  
  10. $res1 = mysql_query("select * from$tableORDER BY heure ASC");  
  11. while ($requet1 = mysql_fetch_object($res1)) {  
  12.  
  13. echo '<tr><td>'.$requet1->heure.'h00</td>'; //affichage de l'heure du cours dans la deuxieme colonne  
  14.  
  15. $query2="SELECT heure,jour,style,date_debut,date_fin FROM$tableWHERE jour='$requet1->jourGROUP BY heure,jour,style,' AND heure='$requet1->heure'";  
  16. $res2=mysql_query($query2);  
  17. while ($requet2=mysql_fetch_object($res2)); 
  18.       
  19. echo '<td>-', $requet1->style, '</td>'; 
  20.    echo '<td>-', $requet1->style, '</td>'; 
  21.    echo '<td>-', $requet1->style, '</td>'; 
  22.    echo '<td>-', $requet1->style, '</td>'; 
  23.    echo '<td>-', $requet1->style, '</td>'; 
  24.    echo '<td>-', $requet1->style, '</td>'; 
  25.    echo '<td>-', $requet1->style, '</td>'; 
  26.       }  
  27.  
  28. echo '</tr>'; //fin de la ligne  
  29. ?> 


Merci si vous pouvez y jeter un oeil et éclairer ma lanterne.
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
En gros, il me manque la fonction colonne quoi, mais jisépa koa mettre dedans smiley ...
  1. <?php  
  2. function colonne($heure, $jour, $joura) {  
  3.  
  4. return( $joura );  
  5.  
  6. }  
  7. $query2="SELECT heure,jour,style,date_debut,date_fin FROM$tableWHERE jour='$requet1->jourGROUP BY heure,jour,style,' AND heure='$requet1->heure'";  
  8. $res2=mysql_query($query2);  
  9. while ($requet2=mysql_fetch_object($res2)); 
  10.       
  11.    echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  12.       echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  13.        echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  14.        echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  15.        echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  16.        echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  17.        echo colonne($requet1->heure, $requet1->jour, $joura)? '<td>'.$style.'</td>' : '<td></td>'; 
  18.       } 
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Ca n'inspire pas grand monde mon truc...
smiley
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Il vaut mieux toujours faire une requête un peu plus grosse, quitte à faire du traitement derrière en PHP plutôt que de placer une requête SQL dans une boucle PHP (je dis ca car j'ai comme une intuition qui me dit que tu vas utiliser ta fonction colonne dans une boucle).
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Yep, merci. C'est vrai que c'est chaud et surtout pas top maitrisable. Au bout d'un moment, on ne sait plus quoi renvoit quoi !
Bon, c'est le coup de la case du tableau qui me chagrine. Comment je vais pouvoir afficher mon cours de Salsa le mercredi à 14h... Un id sur chaque cellule ou ça craint du boudin ?
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
C'est juste horrible de faire un planning hebdo...
smiley
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Bonsoir, juste un truc sur cette requete siouplé, je ne comprends pas pourquoi ça ne m'affiche pas le cas n°1 meme quand le requete est vide. Ca fait 2 h que je suis dessus et je ne vois pas ou est le probleme. Merci :-)
  1. <?php
  2. mysql_connect($host,$user,$password);  
  3. mysql_select_db("$base") or die(mysql_error());  
  4. $sql1 = 'SELECT * FROM '.$table.' where status = 1 LIMIT 0,500;'; 
  5.    $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); 
  6.    while($data1 = mysql_fetch_array($req1)) { 
  7.    if ($data1 == 0) { 
  8.    echo "cas n° 1 : aucun enregistrement"; 
  9.          } else {  
  10. echo "cas n° 2 : <b>Plusieurs enregistrements</b>"; 
  11.       } 
  12.    }  
  13. mysql_free_result($req1);  
  14. ?> 
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
parceque $data est un tableau...?

Bon alors, voila comment je negocierai ton probleme, comme personne ne veut s'y coller. Et oui pour Lupusmic, je suis un sauvage !

Donc, je ferais l'affichage par colonne deja. Lundi, mardi, mercredi, blabla.

il te faudrait faire des boucles dans un boucle.

Tu stockes en BDD, ton jour (0 a 6 ou lun,mar, comme tu veux) et une fois tout ca recupere tu geres ligne par ligne, puis cellule par cellue
LupusMic
LupusMic
Déconnecté
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
(Keika) C'est parce qu'on fait des boucles qu'on est un sauvage. Ça dépend où on les fait. Comme les galipettes 8)

Et puis je pouvais pas m'y coller, j'avais piscine.

(krma) Essaye de ne pas tout faire en même temps. Je te conseillerais de créer des classes qui s'occupent de gérer l'aspect agenda. Tu ne t'occupe pas de la base de données, on s'en fout pour l'instant.

Tu testes en y injectant des données manuellement (c'est à dire sans interroger la base de données), et tu affiches aussi manuellement les données. Le mieux, c'est de créer un script PHP à exécuter en ligne de commande. C'est plus simple, puisque tu mets sommairement en page.

Après ça tu peux t'attaquer à la récupération des données dans la base de données. Tu écris une classe de contrôle, qui va te permettre de requêter la base, et d'utiliser les résultats pour nourrir tes objets métier.

Une fois que ça marche, il te suffit d'écrire les classes qui te permettent d'afficher les objets métiers, et d'adapter le contrôleur pour qu'il fournisse à la vue les objets métiers qu'elle doit afficher.

Si vraiment tu n'arrive pas encore à penser objet, ce n'est pas grave. Tu peux faire quelque chose d'équivalent en procédural.

L'important c'est de bien tout séparer, et de gérer les erreurs possibles. Ça signifie qu'il faut que tu relises la documentation des fonctions que tu utilises, et que tu vérifie les erreurs qu'il faut gérer.
Sinon, tu pourras poster autant que tu voudras, on ne pourra pas t'aider sans messages d'erreur.
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
D'acc, merci pour vos réponses. Mais je n'ai pas le niveau pour penser objet et classe. Je vais m'en sortir en mettant les jours et les heures en haut de tableau. Plus simple de boucler par jour que de faire une requete par cellule.
Mais quand j'aurai un peu de temps, je m'y colle aux classes, je sens que c'est le moment ! On est trop souvent limité par ses (in)compétences.
Droopy
Droopy
Déconnecté
Bonjour !!

krma --> est-ce qu'il serait possible de me fournir le script du planning hebdo que tu as mis en lien ?

Je doit mettre en place un système de réservations en ligne, pour les cours d'équitation d'un centre équestre.
Et pour cela, j'aimerais partir sur la base de ton planning hebdomadaire, que j'adapterai pour mon projet.

Je te remercie d'avance !!
mon e-mail
@+
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog