Date comprise entre et entre

cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011 - 13 janv. 2008 à 17:54
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 - 14 janv. 2008 à 15:01
Bonjour, j'utilise la source
http://www.phpcs.com/code.aspx?ID=25751
 .
Apres qq petites retouches cette source qui faisait de la gestion d'évenement me permet de géré la réservation d'un chalet.
Dérniérement j'ai ajout dans la table le champ date_fin dans le but de pouvoir afficher dans le calendrier des reservations comprise entre Date et Date_fin.

Le pb et que je n'arrive pas a apporter les corrections au code pour afficher les date comprise dans le période.
voici la fonction qui récupere les dates.

  function bir($jou, $moi, $ann, $tab, $connect, $debug)
   {
   $req = 'SELECT *
     FROM '.$tab.'      WHERE dayofmonth(date) '.$jou.' AND month(date) '.$moi.' AND year(date) = '.$ann.'
     AND supp_resa="0"
     ORDER BY  date asc, nom asc, prenom asc';



   $res = mysql_query($req, $connect);
   $nbr = mysql_num_rows($res);
   if($nbr) { $ret[1] = $nbr; $ret[2] = $res; } else { $ret[1] = ''; }




   $ret[0] = '';
   if($debug == true) { $ret[0] .= deb($jou.'-'.$moi.'-'.$ann, $nbr); }
   
   return $ret;
   }





Merci de votre aide

10 réponses

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
13 janv. 2008 à 18:39
Pourrais-tu mettre après $res = mysql_query($req, $connect); la ligne suivante stp et nous dire ce que cela affiche: print_r(mysql_fetch_array($res));

*****
noisy communication - wherever, be everywhere!
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
13 janv. 2008 à 19:46
bonjour et merci de m'aider.
voici ce que retourne votre code.

Array ( [0] => 1 [id_resa] => 1 [1] => Dupond [nom] => Dupond [2] => Michel [prenom] => Michel [3] => bla bla un message [message] => bla bla un message [4] => 2008-01-14 [date] => 2008-01-14 [5] => 2008-01-20 [date_fin] => 2008-01-20 [6] => Christophe [reservant] => Christophe [7] => [modif_reservant] => [8] => 2 [qte] => 2 [9] => 15 [prix] => 15 [10] => 0 [supp_resa] => 0 )
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
13 janv. 2008 à 19:50
ben si je comprends bien ton code, tu dois juste modifier ta requête sql:
$req = 'SELECT *
     FROM '.$tab.'      WHERE dayofmonth(date) '.$jou.' AND month(date) '.$moi.' AND year(date) = '.$ann.'
     AND supp_resa="0" AND date_fin < '.$fin.' ORDER BY  date asc, nom asc, prenom asc';

et ajouter une varibale:
  function bir($jou, $moi, $ann, $tab, $connect, $debug, $fin)

*****
noisy communication - wherever, be everywhere!
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
13 janv. 2008 à 21:12
Domage, c'est pas ça. Bizarement j'ai ces 3 erreurs

Warning: Missing argument 7 for bir() in /home.10.2/wissim/www/dev.wissbox/back_office/calendrier.php on line 162

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home.10.2/wissim/www/dev.wissbox/back_office/calendrier.php on line 178

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.10.2/wissim/www/dev.wissbox/back_office/calendrier.php on line 180

et elles se répete 30 foi avant d'afficher le tableau.

petite question, ni connaisant pas grand chose en fonction je me demandais comment le systeme savais que $fin etait = au chanps date_fin.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
13 janv. 2008 à 21:17
hemm... effectivement je constate un certain manque de connaissances...

Regarde le message d'erreur, il dit missing argument 7 for bir()... cela veut dire que tu ne l'as pas mis!
Dans ton code, il y a un endroit où tu fais appel à cette fonction bir() et à cet endroit il y a actuellement 6 arguments. Il faut que tu ajoutes le 7e et que ce soit la date de fin (format: 2008-01-03), c'est comme ça que la fonction va associer $fin à date_fin

*****
noisy communication - wherever, be everywhere!
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
13 janv. 2008 à 22:42
Ok merci, j'ai trouver les fonctions ou il manquait la variable $fin.
Du coups il me reste 30 fois cette erreur :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.10.2/wissim/www/dev.wissbox/back_office/calendrier.php on line



180
et la ligne 180 correspond




a la ligne$nbr = mysql_num_rows($res); de mon premier poste.
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
14 janv. 2008 à 07:46
Ca veut dire qu'il y a une erreur dans la requête.
Rajoute dans ton code après la requête ($req = ...) la ligne echo '
'.$req; et dis moi ce que ça t'affiche. A priori la requête aura une erreur qui devrait sauter aux yeux si tu connais bien ta table

*****
noisy communication - wherever, be everywhere!
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
14 janv. 2008 à 09:14
C'est bien ce qui me semblait, il répete autant de foi l'erreur qu'il y a de jour dans le mois et incremente de +1 dayofmonth(date) = 2 / dayofmonth(date) = 2 / dayofmonth(date) = 3 .......
voici ce que me retourne la variable $req :




SELECT * FROM dev_reservation WHERE dayofmonth(date) 1 AND month(date) 01 AND year(date) = 2008 AND date_fin <= AND supp_resa="0" ORDER BY date asc, nom asc, prenom asc
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home.10.2/wissim/www/dev.wissbox/back_office/calendrier.php on line 181
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
14 janv. 2008 à 09:48
A j'oubliais il manque aussi la date de fin.
0
malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
14 janv. 2008 à 15:01
on va finir par y arriver... peut-être 

S'il manque la date de fin, c'est parce que tu ne l'as transmets toujours pas...

Est-ce que dans la définition de la fonction tu as:
 function bir($jou, $moi, $ann, $tab, $connect, $debug, $fin)
?

*****
noisy communication - wherever, be everywhere!
0
Rejoignez-nous