begin process at 2012 05 30 13:20:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Creation d'un tableau mysql type agenda


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Creation d'un tableau mysql type agenda

mardi 13 janvier 2009 à 12:20:28 | Creation d'un tableau mysql type agenda

renaudgarn

Bonjour,
Je viens vers vous car je planche sur un problème depuis quelques jours et mon code se tord dans tous les sens sans que je m'en sorte vraiment.
Je cherche à réaliser un tableau créé à partir de requêtes multiples, les colonnes correspondent à des jours et chaque ligne correspond à une requête particulière (1-->séquences 2-->décor 3-->lieu 4-->horaires de travail ...etc...)
Mon premier problème était de faire correspondre le nombre de colonnes pour chaque ligne, je fais donc une requête pour le nombre de jour à chaque fois (çà me parait lourd et optimisable, mais je ne vois pas trop comment faire)que je fais un </tr> en html.
Ensuite je place une requête pour les événements et si le jour du calendrier créé correspond au jour de l'événement, j'affiche l'événement dans la case correspondante.
Je m'en étais à peu près sorti en donnant un n° à chaque colonne, mais je me rend compte que si l'utilisateur change les dates, le n°des colonnes changera aussi et tout va se décaler. De plus, lorsque je fais ma requête d'événements, si j'ai plus d'un événement, le nombre de colonnes double et déforme mon tableau, en affichant sur la première série de colonnes l'événement 1 au jour dit (colonne n°5 sur 10 jours par ex), et sur la deuxième série de colonnes(qui dépasse sur la droite donc, et me fait 20 colonnes au lieu de 10) l'événement 2 à la colonne qui corresponderait(colonne 15 sur 20).

Je vous envoie une partie de mon code en exemple, chaque ligne est à peu près constituée de la même façon, et je pense que vous saurez m'indiquer un moyen de compresser chaque requête(ligne de tableau) en une si c'est possible, car ma page finale va depasser la vingtaine de requêtes au final...
Mais surtout comment comment afficher dans la même case les infos qui correspondent au même jour.

Merci beaucoup d'avance, je ne suis dans le php que depuis quinze jours, soyez indulgents sur mes erreurs de code, je ne demande qu'à apprendre.
mardi 13 janvier 2009 à 12:30:18 | Re : Creation d'un tableau mysql type agenda

renaudgarn

$sql_lt = "SELECT periodes.*,rel_jour_seq.*
                                    FROM periodes,rel_jour_seq
                                    WHERE periodes.id_film=47
                                    AND
                                    rel_jour_seq.id_film=47
                                    " ;
                                     $req = mysql_query($sql_lt) or die('Erreur SQL !<br>'.$sql_lt.'<br>'.mysql_error());
                                     while($data = mysql_fetch_array($req))
                                    
                                    {
                                        list($date_deb_tour_Year,$date_deb_tour_Month,$date_deb_tour_Day)=explode('-',$data['date_deb']);
                                        list($date_fin_tour_Year,$date_fin_Month,$date_fin_tour_Day)=explode('-',$data['date_fin']);
                                        $debut_date = mktime(0, 0, 0, $date_deb_tour_Month, $date_deb_tour_Day, $date_deb_tour_Year);
                                          $fin_date = mktime(0, 0, 0, $date_fin_Month, $date_fin_tour_Day, $date_fin_tour_Year);
                                        for($i = $debut_date; $i <= $fin_date; $i+=86400)
                                               {
                                                echo '<td bgcolor="#ddd">';
                                                if ($jour_t==$data['id_jour']) {echo '<div align="center">',$data['seq'],'</div>';}
                                                echo '</td>';$jour_t++;
                                            }
                                    }
mardi 13 janvier 2009 à 13:15:36 | Re : Creation d'un tableau mysql type agenda

renaudgarn

J'ai modifié mon code pour que l'événement soit affiché en fonction du jour et non de la colonne, mais j'ai toujours ce problème de double série de colonnes au lieu d'avoir une seule série avec tous les événement dans la même case correspondant à un même jour.

Dois-je faire une requête dans la boucle pour éviter d'avoir plusieurs résultats avant de créer les colonnes ?
J'ai lu qu'il fallait éviter ce genre de choses, je comprends bien qu'il est abusé de faire une requête par colonne, mais je ne trouve pas comment associer les résultats de la requête pour qu'ils ne créent pas deux séries de colonnes (ou plus)

Voici le nouveau code ( pardon pour la présentation du premier !! ).

mysql_select_db('ifilms',$db);
 $sql_lt = "SELECT periodes.*,rel_jour_seq.*
FROM periodes,rel_jour_seq
WHERE periodes.id_film=47
 AND
rel_jour_seq.id_film=47
" ;
$req = mysql_query($sql_lt) or die('Erreur SQL !<br>'.$sql_lt.'<br>'.mysql_error());
while($data = mysql_fetch_array($req))
{
 list($date_deb_tour_Year,$date_deb_tour_Month,$date_deb_tour_Day)=explode('-',$data['date_deb']);
 list($date_fin_tour_Year,$date_fin_Month,$date_fin_tour_Day)=explode('-',$data['date_fin']);
 list($date_Year,$date_Month,$date_Day)=explode('-',$data['id_jour']);
 $date_even =  mktime(0, 0, 0,$date_even_Month,$date_even_Day,$date_even_Year);
 $debut_date = mktime(0, 0, 0, $date_deb_tour_Month, $date_deb_tour_Day, $date_deb_tour_Year);
 $fin_date = mktime(0, 0, 0, $date_fin_Month, $date_fin_tour_Day, $date_fin_tour_Year);
 for($i = $debut_date; $i <= $fin_date; $i+=86400)
     {
             echo '<td bgcolor="#ddd">';
             if ($i==$date_even_jour){echo '<div align="center">',$data['seq'],'</div>';}
             echo '</td>';$jour_t++;
      }
}


Cette discussion est classée dans : tableau, requête, jour, colonnes, événement


Répondre à ce message

Sujets en rapport avec ce message

Problème de requête : UPDATE [ par loupopeye ] Salut,Big problème, ça ne marche pas..Help... require ('../connexion.php');$result = mysql_query('UPDATE logements SET valid='.$valid.', ref='".$ref. Tableau de BDD [ par Tomcube ] Ce que je veux :J'ai le résultats d'une requête avec 2 enregistrements.Avant j'en faisais 2 requête de 1 enregistrement mais j'ai décidé d'optimiser m code identique au résultats différents... [ par engelho ] Bonjour.J'ai créé un tableau d'objets à 2 dimensions.Pour remplir ce tableau, j'utilise des fonctions...Or, si la première fonctions me renvois les ré Calculer des largeurs de colonnes et les stocker dans un tableau associatif [ par michel_roger ] Bonjour, je pose ma question tant qu'il me reste des cheveux ;-)Le contexte:-Je récupère une requête mysql (string).-Avec la librairie FPDF qui permet mysql_numrows affiché dans un tableau [ par pyranhaz ] Bonjour,Je gosse après un codage qui me donne des maux de tête parce que je ne sais pas comment m'y prendre...J'utilise MySQL et je fais affichage des Tableau [ par nashoy ] Bonjour,je viens de m'interesser aux tableaux mais j'ai quelques problèmes :$tableau = array ('[jour]' => 'bonjour.gif',":?" => 'confus.gif','[h]' => résultat d'une requête dans un tableau [ par cecell ] Bonjour, je voudrai savoir s'il est possible de mettre les résultats d'une requête de sélection dans un tableau.J'ai réaliser la requête suivanteselec Fixer la taille des colonnes d'un tableau. [ par Sandy084 ] Bonjour !Est ce que quelqu'un a une idée pour que les colonnes de mon tableau HTML ne dépassent pas la valeur que je leur donne?Je m'explique plus pré Mise à jour d'une liste déroulante suite à une requête basée sur la valeur d'un champ [ par dubitoph ] Bonjour,Voici mon problème : j'ai un formulaire d'inscription dont un des champs est le code postal. Lorsque le code postal est saisi (sur l'événement comparer array et requête [ par alecto ] Bonjour à tous et merci d'avance pour ceux qui pourront m'aider, voici mon pb :  <?xml:namespace prefix = o ns


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales