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 pour une réservation (Projet BAC) [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut Problème pour une réservation (Projet BAC)
    Bonjour à tous,

    Comme vous l'avez vu dans le titre j'ai un soucis au niveau d'un enregistrement. Je m'explique, je travaille sur un projet concernant des gîtes. Pour ce projet je dois faire un formulaire permettant la réservation d'un client par un adhérent. La réservation s'effectue cependant j'ai voulu ajouter une requête SQL pour ne pas permettre l'ajout de deux réservations sur une même période (logique).

    Je vous laisse découvrir mon script :

    -------------------------------------

    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
    40
    <?php
     
    mysql_connect("localhost", "root", "GSI");
    mysql_select_db("GitesDuVertige");
     
    $dateDeb = $_POST['dateDeb'];
    $numGite = $_POST['numGite'];
    $dateFin = $_POST['dateFin'];
     
     
     
     
     
     
    	// Requête vérif réservations
     
    $requete = 'SELECT * FROM RESERVATION ';
    $requete .= 'WHERE "$DateDebut" < DateResDeb AND "$DateFin" > DateResDeb ';
    $requete .= 'OR "$DateDebut" < DateResDeb AND "$DateFin" >DateResfin ';
    $requete .= 'OR "$DateDebut" > DateResDeb AND "$Datefin" < DateResfin ';
    $requete .= 'OR "$DateDebut" < DateResDeb AND "$Datefin" > DateResfin';
     
    $verif=mysql_query($requete) or die (mysql_error());
     
    if (mysql_num_rows($verif)>0)
     
    	echo '<h1><center><strong>Il y a déjà une réservation sur cette période !</center></strong></h1>';
     
    else 
     
    	$verif=mysql_query("INSERT INTO RESERVATION VALUES ('','$dateDeb','$dateFin',$numGite)") or die (mysql_error());
    	if($verif)
    { 
        echo '<h1><center><strong>La réservation a bien été effectuée !</center></strong></h1>';
    }
    	mysql_close(); 
    ?>
     
    </body>
    </html>
    -----------------------------

    Le problème vient du fait que même si j'effectue une réservation sur une période déjà prise, ça m'affiche le message "La réservation a bien été effectuée !" alors qu'au contraire ça devrait m'afficher "Il y a déjà une réservation sur cette période".

    Si vous avez cerné mon problème je vous prie de bien vouloir m'aider

    Merci à tous et bonne soirée

    Kerly.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Bonjour kerly,

    Je pense que tu as simplement un problème de concaténation. Tes 3 variables sont considérées comme des chaînes de caractères.

    remplace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $requete .= 'OR "$DateDebut" < DateResDeb AND "$DateFin" >DateResfin ';
    par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $requete .= 'OR' . $DateDebut . '< DateResDeb AND' . $DateFin . ' >DateResfin ';
    Tu devrais déjà voir une différence de coloration non négligeable .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Bonsoir berew et merci de ta réponse, en effet la différence est appréciable

    Cependant des messages d'erreurs s'affichent :

    ---------------

    Notice: Undefined variable: DateDebut in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 24

    Notice: Undefined variable: DateFin in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 24

    Notice: Undefined variable: DateDebut in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 25

    Notice: Undefined variable: DateFin in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 25

    Notice: Undefined variable: DateDebut in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 26

    Notice: Undefined variable: Datefin in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 26

    Notice: Undefined variable: DateDebut in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 27

    Notice: Undefined variable: Datefin in c:\users\damien\documents\damien\cours\terminale\gsi\double cle usb\gsi\easyphp1-8-modgsi\www\projet\repformulaire.php on line 27
    Erreur de syntaxe près de '< DateResDeb AND > DateResDeb OR< DateResDeb AND >DateResfin OR ' à la ligne 1

    ------------------

    La requête modifiée donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $requete = 'SELECT * FROM RESERVATION ';
    $requete .= 'WHERE' . $DateDebut . '< DateResDeb AND' . $DateFin .' > DateResDeb ';
    $requete .= 'OR' . $DateDebut . '< DateResDeb AND' . $DateFin . ' >DateResfin ';
    $requete .= 'OR' . $DateDebut . ' > DateResDeb AND' . $Datefin . ' < DateResfin ';
    $requete .= 'OR' . $DateDebut .  ' < DateResDeb AND' . $Datefin . ' > DateResfin ';

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Ha je n'avais pas vu au début mais ça parait tellement gros .

    Regarde un peu le nom de tes variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $dateDeb = $_POST['dateDeb'];
    $numGite = $_POST['numGite'];
    $dateFin = $_POST['dateFin'];
    et celle que que tu utilises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $requete = 'SELECT * FROM RESERVATION ';
    $requete .= 'WHERE' . $DateDebut . '< DateResDeb AND' . $DateFin .' > DateResDeb ';
    $requete .= 'OR' . $DateDebut . '< DateResDeb AND' . $DateFin . ' >DateResfin ';
    $requete .= 'OR' . $DateDebut . ' > DateResDeb AND' . $Datefin . ' < DateResfin ';
    $requete .= 'OR' . $DateDebut . ' < DateResDeb AND' . $Datefin . ' > DateResfin ';

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    Oula oui en effet, ça fait plusieurs jours que je bute sur ça alors qu'il n'y avait pas à chercher bien loin ... J'en rigole

    Merci beaucoup pour ton aide, juste que je ne comprend pas l'apparition de ce message à présent quand je valide le formulaire :

    Erreur de syntaxe près de '-06-02< DateResDeb AND2008-06-16 > DateResDeb OR2008-06-02< Date' à la ligne 1

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Ajoute quelques espaces que l'on voit un peu tous les mots et nombres de ta requête^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RCP] problème pour exporter le projet
    Par david06600 dans le forum Eclipse Platform
    Réponses: 11
    Dernier message: 14/11/2007, 16h46
  2. Problème pour une définition de type
    Par Kleer dans le forum Ada
    Réponses: 4
    Dernier message: 05/03/2007, 12h34
  3. Problème pour une calculette
    Par Pyrhaa_666 dans le forum C
    Réponses: 5
    Dernier message: 13/07/2006, 19h47
  4. [VB6]problèmes pour executer mon projet en VB
    Par Walowalo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/04/2006, 19h27
  5. problème pour une calculatrice
    Par Anthobask dans le forum C
    Réponses: 4
    Dernier message: 19/12/2005, 21h11

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