begin process at 2012 05 31 14:44:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Requete, entre 2 fesant deja partie d'entre 2 dates...


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

Requete, entre 2 fesant deja partie d'entre 2 dates...

dimanche 9 mars 2008 à 10:07:18 | Requete, entre 2 fesant deja partie d'entre 2 dates...

davidcian

Bonjour,

J'ai un problème un peu compliqué à resoudre...

Je vais essayer d'etre claire.

Dans un calendrier mes utilisateurs peuvent diffuser une pub (image.jpg) entre 2 dates de leur choix (date1 et date2)

Lorsque que le calendrier s'affiche une ligne d'occupation leur montre les dates deja prisent. Apartir de la, ils peuvent voir les crénaux disponible.

Toute fois rien ne les empeche de prendre dates deja prisent lors de la validation du formulaire...

Pour le code voila les variables que je récupere:

function date_fr_to_mysql($str)
{
    return preg_replace(
        '/([0-9]{2}).?([0-9]{2}).?([0-9]{4})/',
        '\\3-\\2-\\1',
        $str);
}


$date_deb = $_POST['date1'];
$date_fin = $_POST['date2'];

$date1 = date_fr_to_mysql($date_deb);
$date2 = date_fr_to_mysql($date_fin);


En résumé:
Je voudrais vérifier qu'entre Date1 et Date2  aucune réservation  n'a deja etait faites.

J'espere avoir été claire dans le cas contraire je déveloprais un peu plus.

Az





dimanche 9 mars 2008 à 11:13:46 | Re : Requete, entre 2 fesant deja partie d'entre 2 dates...

davidcian

J'ai essayer ca mais ca ne marche pas...

function date_fr_to_mysql($str)
{return preg_replace(
   '/([0-9]{2}).?([0-9]{2}).?([0-9]{4})/',
   '\\3-\\2-\\1',
   $str);}

$date_deb = $_POST['date1'];
$date_fin = $_POST['date2'];
$chk_ban  = $_POST['baniere'];
$chk_mot  = $_POST['moteur'];
$chk_aqu  = $_POST['aquereur'];

$date = date_fr_to_mysql($date_deb);
$date2 = date_fr_to_mysql($date_fin);
$date1 = $date;

while($date1>=$date2)
{
    $requete = 'SELECT *
    FROM site_resa
    WHERE \''.$date1.'\' BETWEEN date1 AND date2
    AND baniere = "on"
    OR aquereur = "on"
    OR moteur = "on"';

    $requete1 = mysql_query($requete)or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
    while ($data1=mysql_fetch_array($requete1))
        {$baniere = $data1[7];
        $moteur = $data1[8];
        $aquereur = $data1[9];}

        If (($chk_ban == "on")&&($baniere == "on"))
            {$date1 = $date2;
            $erreur = "oui";}
        If (($chk_mot == "on")&&($moteur == "on"))
            {$date1 = $date2;
            $erreur = "oui";}
        If (($chk_aqu == "on")&&($aquereur == "on"))
            {$date1 = $date2;
            $erreur = "oui";}
    
        $chaine = $date1;
        $date_deb_exp = explode ("-", $chaine);
        $jour = $date_deb_exp[2];
        $mois = $date_deb_exp[1];
        $annee = $date_deb_exp[0];

        $jour = $jour+1;

$date1 = $annee."-".$mois."-".$jour;
}

Az
dimanche 9 mars 2008 à 12:59:30 | Re : Requete, entre 2 fesant deja partie d'entre 2 dates...

davidcian

J'y suis presque mais il reste une petite erreur, j'ai mis des annotations pour que vous puissiez me suivre:

function date_fr_to_mysql($str)
{return preg_replace(
   '/([0-9]{2}).?([0-9]{2}).?([0-9]{4})/',
   '\\3-\\2-\\1',
   $str);}

$date_deb = $_POST['date1'];
$date_fin = $_POST['date2'];
$chk_ban  = $_POST['baniere'];
$chk_mot  = $_POST['moteur'];
$chk_aqu  = $_POST['aquereur'];

$date = date_fr_to_mysql($date_deb);
$date2 = date_fr_to_mysql($date_fin);
$date1 = $date;
$erreur = "";


//boucle sur le nobre de jours entre Date1 et Date2
while($date1<$date2)
{

    //Ecriture de la requete
        $requete = 'SELECT *
        FROM site_resa
        WHERE \''.$date1.'\' BETWEEN date1 AND date2
        OR baniere = "on"
        OR moteur = "on"
        OR aquereur = "on"';

    //Envois de la requete   
        $requete = mysql_query($requete)or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
        while ($data=mysql_fetch_array($requete))
        {$baniere = $data[7];
        $moteur = $data[8];
        $aquereur = $data[9];}

       
    //Découpage de la date
            $chaine = $date1;
            $date_deb_exp = explode ("-", $chaine);
            $jour = $date_deb_exp[2];
            $mois = $date_deb_exp[1];
            $annee = $date_deb_exp[0];


    //Ajoute 1 jour
            $jour = $jour+1;
    //Formatage du nouveau jours sur 2 chiffres
    if ($jour<=9)
        $jour = "0".$jour;


    //formatage de la nouvelle date
        $date1 = $annee."-".$mois."-".$jour;

    //Si Date1 et Date2 ont le meme critére sur "on" on sort de la boucle, sinon on controle le jour suivant jusqu'a date2.

        If (($chk_ban == "on")&&($baniere == "on"))
            {$erreur = $date1."baniere";
//==> "baniere"me sert a voir a quel endroit je sort de la boucle.
            break;}
        If (($chk_mot == "on")&&($moteur == "on"))
            {$erreur = $date1."moteur";
            break;}
        If (($chk_aqu == "on")&&($aquereur == "on"))
            {$erreur = $date1."aquereur";
            break;}
}


if ($erreur == "")
{
...
}

Le dernier probléme c'est que j'ai parfois des erreurs qui me font sortir de la boucle au niveau de "moteur" alors qu'il n'y a aucune raison...

A mon avis c'est soit une erreur au niveau de la requete ou des conditions... loool.

Az
dimanche 9 mars 2008 à 22:08:16 | Re : Requete, entre 2 fesant deja partie d'entre 2 dates...

davidcian

Réponse acceptée !
Réglé.

Az


Cette discussion est classée dans : date, dates, deja, date1, date2


Répondre à ce message

Sujets en rapport avec ce message

AIDE extraire enregistrements entre 2 dates [ par chevaliero ] Bonjour,Mon but est d'afficher des infos comprises entre deux dates.J'ai un formulaire avec 2 champs textbox (date1 et date2 ) dans lequels je saisie Probleme de date [ par davidcian ] Bonjour,Bon la je tourne en rond depuis un moment...Je vous explique:2 variables (string):$date_deb = $_POST['date1']; => au format 12/03/2008 $date_f Probleme de requette MySQL [ par davidcian ] Rebonjour,J'ai un p'tit probléme avec une requete MySQL:            $requete = 'SELECT id,nom_util,societe,pseudo,date1,date2,promoteur,baniere,aquere fonctions conçrnant les dates [ par papiona ] salut,Je veux savoir s'il y a une fonction qui determine une date precedente à partir d'une date donnéee.merçi d'avance. dates [ par ahlem_o ] slt, le problème est le suivant a une date donnée un employé put occuper une position onnée cad soit présent abscen en congé etc pou formuler mon mcd Moyenne de différence entre 2 dates [ par christuckers ] Amis CSistes bien le bonjour et tous mes meilleurs voeux.Après avoir lu maintes forum, sources et autres documents, je n'ai malheuresement pas pu trou afficher les dates d'une date de début a une date de fin [ par laura1409 ] bonjourje suis en train de réaliser un site internet en php qui permet la gestion de planning de formationje travaille en ce moment sur la mise en for comparaison dates [ par noussaa19 ] Bonjour, j'ai un problème dans mon code php je veux comparer 2 dates dont la première récupéré à partir d'une base de donnée mysql mais sous la forme Afficher les jours entre deux dates [ par Ricci ] Bonjour! J'ai trouve le script ci-dessous pour afficher les jours entre 2 dates. $nbjour=($date2-$date1)/60/60/24;//Nombre de jours entre les deux Enumération des dates d'une période [ par gregou9 ] Bonjour, J'ai une fonction php pour énumerer les dates d'une période mais elle me renvoit pas les bonnes dates (les années sont decalées genre 2020).


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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,437 sec (4)

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