Condition pour une date dans mysql

Lol -  
 Lol -
Bonjour,

j'ai le tableau suivant:

`reservation_ID` NUMBER ( 20) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`booking_date`DATE NOT NULL ,
`customer_ID` VARCHAR( 100 ) NOT NULL ,
`room_id` VARCHAR( 100 ) NOT NULL ,
`start_date` DATE NOT NULL ,
`end_date` DATE NOT NULL ,
`smoking allowed` VARCHAR( 10 ) NULL ,
`floor_range` VARCHAR( 100 ) NULL ,
`no_of_beds` INT( 100 ) NULL ,
`no_of_guests` INT( 100 ) NOT NULL ,
`additionnal_guests` VARCHAR( 200 ) NULL,
`cc_number` number ( 16 ) NOT NULL ,
`exp_date ` date ( 100 ) NOT NULL ,
foreign Key (room_ID) references room (room_ID),
foreign Key (customer_ID) references customer(customer_ID));

je voudrais faire en sorte que la start date ne puisse pas etre inferieure a la booking date ( qu'on ne puisse pas reserver une chambre a une date passee)

Quelqu'un sait comment faire svp?

Merci d'avance
Configuration: Windows XP
Firefox 3.0.5

3 réponses

  1. Utilisateur anonyme
     
    Oui comme je te l'ai di, perso je pense plutôt que tu devrais faire ces vérif en php avant d'exécuter ta requête (ce qui te permettra en plus d'afficher des messages d'erreurs ;)
    1
    1. Lol
       
      Merci!

      et pour mon type de donnee pour cc_number c'est aussi un truc que je dois regler en PHP ou il y a moyen de regler ca a l'etape mysql?
      0
  2. Utilisateur anonyme
     
    Bonsoir

    je pense que c'est à toi de le gérer lorsque tu fait tes requetes SQL
    0
    1. Lol
       
      Bonjour,

      ca peut se faire, mais l'idee est de relier ma base de donnee a un site web
      Et je voudrais eviter que l'utilisateur puisse reserver une date anterieure a celle ou il fait sa reservation.

      Je pense que personne ne ferait un truc pareil consciemment mais ca peut arriver...

      J'ai un autre souci dans la ligne CC_number:

      je voudrais que Mysql accepte seulement un integer de 16 chiffre.
      j'ai essaye avec CHAR, number, INT, ca hne change rien il accepte toujours des 14 ou des 18 chiffres...

      Quelqu'un sait comment faire?
      0
      1. Lol > Lol
         
        Je suis en train de me dire il faut peut etre que je l'ecrive en PHP pour y arriver.....
        0
  3. Utilisateur anonyme
     
    Tu peut peut être le regler par mysql,

    mais attention à ne pas confondre nombre de bits et nombre de chiffre, quand tu vois INT (32) ce n'est pas un chiffre à 32 chiffres, mais un nombre à 32bits ;) (soit 4 octets (4x8))

    le mieux est de le faire via php, après ca dépend de pourquoi tu veux 16chiffre maximum, car si c'est un code d'identification par exemple, tu peux le faire avec un VARCHAR (16) ;)
    0
    1. Lol
       
      En fait je voudrais m'assurer qu'on puisse entrer seulement un no de carte baquaire valide= a 16 chiffres.

      du coup j'ai essaye avec char (16), varchar (16), int (16), apparemment c'est faux d'ailleurs-
      et puis number (16) je suis meme pas sure que ca existe-

      il me semble qu'il y a un moyen de regler ca au niveau mysql mais quoi que j'utilise il accepte n'importe quel no de carte quel que soit le nombre . Simplement il m'affiche un nombre a 10 chiffres a chaque fois

      et je viens de me rendre compte que c'est toujours le meme nombre quelque soit ce que j'insere dans ma requete...

      au secours!
      0