titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004
-
13 févr. 2004 à 10:24
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004
-
16 févr. 2004 à 12:02
kikou!!!
j'ai une liste déroulante semaine créée a partir des données de la base
et j'ai un tableau avec les jours
je voudrais savoir comment on fait, une fois que l'on a saisie la semaine, ca affiche par exemple pour la semaine du 16/02/2004 au 22/02/2004 ca m'affichera lundi 16, mardi 17, mercredi 18 etc... dans mon tableau
//permet d'afficher la ligne des jours
for($i=0; $i<7; $i++)
{
echo" <td colspan="2">".$jour[$i]."</td>";
}
echo" </tr> ";
et ma requête pour la liste déroulante:
$req = mysql_query ("SELECT semaine,
concat(substring(du,9,2) ,'-',substring(du,6,2),'-',substring(du,1,4)) as nouveaudu,
concat(substring(au,9,2) ,'-',substring(au,6,2),'-',substring(au,1,4)) as nouveauau
FROM temps");
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004 13 févr. 2004 à 10:40
ben on la saisie dans la liste déroulante!!
sur le formulaire elle est en francais grace a la requête que j'ai mise et dans ma base elle est en format "yyyy-mm-dd"
fmazoue
Messages postés335Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 1 septembre 20151 13 févr. 2004 à 11:08
<?
$chaine="2004-02-16";//date de bdd
$jour=array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");//jour en francais
$tab=explode("-",$chaine);//on separe chaque element de la date
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))]." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]));
?>
ce code t'ecit lundi 16
donc maintenant a toi de le modifier pour ton truc !
niarf :-p
parce que ce truc quand il renvoi 0 c dimanche donc dans le tableau celui qui a un indice 0 doit etre dimanche mais c pas bien grave sa change pas grand chose !
niarf :-p
fmazoue
Messages postés335Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 1 septembre 20151 13 févr. 2004 à 13:41
mais ca change rien !
dans ta liste déroulante pour le choix : 16-02-04>21-02-04 tu met dans le value de l'option 16-02-04 et quand tu genere le tableau : tu fais pour la case 1 (lundi) cette formule sur cette value pour la case mardi tu fais cette date +1 (ne verifiant que c une date valide avec check date sinon moi s+1 sinon annee + 1 !!)
enfin faut avoir un peu d'imagination tout de meme ! on a l'impression que tu reflechi plus !
niarf :-p
fmazoue
Messages postés335Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 1 septembre 20151 13 févr. 2004 à 14:16
ben oui parce que la premiere case c lundi 16 ensuite la case deux c mardi 16+1 ...
mais si jamais tu fais un 31+1 ben tu tomb e sur un 32 donc les fonctions de date vont merder donc faut que tu fasse 1 et mois +1 dans date !
c pas compliqué a comprendre tt de meme !
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 13 févr. 2004 à 15:03
oki..
alors on va y aller doucement...
bon alors toi tu recuperes de date: la date du début et la date de fin de semaine ok?
on va dire:
$datedebut="2004-29-01"; ->c un jeudi
$datefin="2004-02-06"; -> c le jeudi suivant.
toi tu veux un truc qui te mette: "jeudi 29, vendredi30, samedi 31, dimanche 01,.., jeudi 06". (là j'ai commencé par un jeudi mais c pas grave, ça peut etre un lundi!).
la premiere chose a faire, c'est savoir à quel jour correspond ta date du debut. pour cela, comme le dit fmazoue, tu dois d'aboir definir les jours:
$jour=array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
ensuite tu voudrais savoir à quel jour correspond le 29/01/2004, donc tu fais:
$tab=explode("-",$chaine);
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))]." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]));
et là il te sors jeudi 29.
pour avoir le reste des jours, il va faloir passer à la date suivant: on augmente le jour de 1:
tab[2]=tab[2]+1;
on verifie si la date est valide (du genre à pas avoir du 2004-01-32 car le 32 janvier n'existe pas..):
$valid=checkdate(tab[1],tab[2],tab[0]);
la si $valid vaut "true", c'est que la date est valide, on peut donc affichier le jour suivant:
echo $jour[date("w", mktime(0,0,0,$tab[1],$tab[2],$tab[0]))]." ".date("d", mktime(0,0,0,$tab[1],$tab[2],$tab[0]));
par contre si valid vaut "false", c'est que la date n'est pas valide, il faut donc passer au mois suivant:
if(tab[1]<12)
{
tab[1]++ // là c'est si on le mois n'etais pas "decembre"
}
else //si c decembre
{
tab[0]=tab[0]+1 //on augmente d'une année
tab[1]=1 // on se met au mois de janvier
tab[2]=1 on se met le premier
}
on peut ensuite aficher le prochain jour :
et voilà..y'a plus qu'à mettre tout ça dans un boucle pour verifier qu'on ne depasse pas la date de fin (ou alors faire un compteur sur le nombre de jour qu'on doit afficher...)
y'a certainement des fautes dans ce que j'ai marqué, mais c'et pour t'expliquer l'idée un peu + en details..
-----------------
--------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
fmazoue
Messages postés335Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 1 septembre 20151 13 févr. 2004 à 15:15
ben un peu ouai ! ce qu'il y a c que j'ai l'impression qu'elle cherche pas beaucoup ! parce que là elle est en stage donc normalement elle doit apprendre hors là elle demande tout !
je sais pas avant de faire un stage en php faut avoir appris un minimum ! t'achete un petit bouquin de php a 9?50 et tu complete par des tutoriaux sur internet ...
niarf :-p
titigrou
Messages postés111Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention 4 mars 2004 16 févr. 2004 à 11:36
j'ai appris le minimum!!!
hors la je demande de l'aide sur quelque chose que je ne comprends pas!!
je n'arrive pas a maîtriser les tableaux!c'est mon point faible et j'y suis pour rien!
et j'ai regardé les tutoriaux sur internet et il n'y en a aucun sur ce que j'ai vu qui soit adapté amon cas!!