IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème de syntaxe sur la récupération des données [MySQL]


Sujet :

PHP & Base de données

  1. #21
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je regarde ça.
    Au passage, la requete est fausse car elle ne comprend pas les périodes qui s'étaleraient sur plus d'un mois. Du genre 15 novembre - 15 janvier => on ne sort pas le mois de decembre.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql = "SELECT datedeb, datefin ".
    	" FROM ****** ".
    	" WHERE datedeb LIKE '". $anaff4ch . $moisaff2ch ."%' ".
    	"    OR datefin LIKE '". $anaff4ch . $moisaff2ch ."%' ".
            "    OR (datedeb < ". $anaff4ch . $moisaff2ch ."00 ".
            "         AND ". $anaff4ch . $moisaff2ch ."31 < datefin) ";
    (Tu avais mis des points alors qu'il n'en faut pas dans tes like)

    N'oublie pas de faire un echo de ta requete pour la tester dans phpMyAdmin afin de vérifier si elle est juste et si elle te retourne tous les cas de figure.

  2. #22
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu peux avoir des reservations hors saison ?

  3. #23
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Hop. Je viens de tester ce code et il marche chez moi. J'avais fait quelques erreurs dans la comparaisons des dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <pre><?php 
     
    $compildebsais1 = 20061207;
    $compilfinsais1 = 20061212;
    $compildebsais2 = 20061223;
    $compilfinsais2 = 20070115;
     
    $reservations = array(
        array('datedeb' => 20061115, 'datefin' => 20061205),
        array('datedeb' => 20061215, 'datefin' => 20061216),
        array('datedeb' => 20061225, 'datefin' => 20070106),
    );
    function get_class_from_date($la_date) {
        $class = "hors_saison";
        global $compildebsais1, $compilfinsais1, $compildebsais2, $compilfinsais2, $reservations;
        if (($compildebsais1 <= $la_date && $la_date <= $compilfinsais1) || ($compildebsais2 <= $la_date && $la_date <= $compilfinsais2)) {
            $class = "saison_libre";
        }
        //On regarde si c'est réservé
        $deja_reserve = false;
        reset($reservations);
        while (!$deja_reserve && (list(,$periode) = each($reservations))) {
            $deja_reserve = $periode['datedeb'] <= $la_date && $la_date <= $periode['datefin'];
        }
        if ($deja_reserve) {
            $class = "complet";
        }
        return $class;
    }
     
     
    foreach(range(1, 31) as $jour) {
        if ($jour < 10) {
            $jour = '0'.$jour;
        }
        echo $jour .' => '. get_class_from_date('200612'.$jour) .'<br>';
    }
     
    ?>

  4. #24
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Mr N.
    Tu peux avoir des reservations hors saison ?
    Salut
    Non, aucune réservation hors saison n'est possible...

    Je teste ton code, et je te tiens au courant...

    Merci encore à toi !!!

    PS : c'est quoi le <PRE> avant ton <?php... ???

  5. #25
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    ça fonctionne !!!

    je dois encore remplacer les dates de réservation que tu as entrées manuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $reservations = array(
        array('datedeb' => 20061115, 'datefin' => 20061205),
        array('datedeb' => 20061215, 'datefin' => 20061216),
        array('datedeb' => 20061225, 'datefin' => 20070106),
    );
    pour les automatiser...

    après ça, je serai OK !!!

    MERCI !!!!!!

  6. #26
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par soshin
    PS : c'est quoi le <PRE> avant ton <?php... ???
    Une balise html qui m'a servi pour mon debuggage

  7. #27
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    OK, merci de l'explication

    comment classes-tu les informations automatiquement dans ton array ?? (les dates de réservation)

  8. #28
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $sql = "SELECT datedeb, datefin ".
    	" FROM ****** ".
    	" WHERE datedeb LIKE '". $anaff4ch . $moisaff2ch ."%' ".
    	"    OR datefin LIKE '". $anaff4ch . $moisaff2ch ."%' ".
            "    OR (datedeb < ". $anaff4ch . $moisaff2ch ."00 ".
            "         AND ". $anaff4ch . $moisaff2ch ."31 < datefin) ";
    $reservations = array();
    $req = mysql_query($sql) or die(mysql_error());
    while($data = mysql_fetch_assoc($req)) {
       $reservations[] = $data;
    }
    Mais la requete est à vérifier impérativement sous phpmyadmin en faisant un echo() de celle ci.

  9. #29
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 8
    Points
    8
    Par défaut
    MOOOOOOOOOOORTEL !!

    sujet résolu !!!

    Thanks

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 17
    Dernier message: 03/05/2013, 09h54
  2. Réponses: 4
    Dernier message: 02/03/2010, 16h09
  3. Réponses: 2
    Dernier message: 16/07/2008, 14h21
  4. Réponses: 31
    Dernier message: 27/07/2006, 13h51
  5. Réponses: 22
    Dernier message: 05/07/2006, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo