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

Langage PHP Discussion :

Afficher tarif en fonction des dates saisies


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Afficher tarif en fonction des dates saisies
    Bonjour

    Je sèche un peu sur un sujet :

    Je suis en train de créer un site de location vacances entre particulier, je vais proposer aux internautes de sélectionner la date d'arrivée et de départ, et le site affiche le prix total pour la période choisie.

    Je m'explique :

    Le propriétaire saisie ses différentes périodes de location avec des prix à la nuit différent suivant la période, ainsi que son prix de base (hors saison) :
    Ex : prix de la nuit toute l'année (prix de base) : 50 € - mais du 1er mai au 30 juin : 60 € et du 1er juillet au 30 octobre : 70 € et du 15 nov au 31 décembre 80 €

    voici ma bdd :

    id id-annonce saison debut fin duree-reservation-mini tarif_nuit tarif_semaine

    544 362319 Standard 2000-01-01 2100-01-01 1 nuit 50 350
    545 362319 Printemps 2015-05-01 2015-06-30 1 nuit 60 420
    546 362319 été 2015-07-01 2015-10-30 1 nuit 70 490
    547 362319 Noel 2015-11-15 2015-12-31 1 nuit 80 490


    Je n'arrive pas faire la requête SQL . En français voila ce qu'il faut faire (penser a prévoir tous les cas de figure lister dans les exemple ci dessous) :

    Exemple 1 :

    Date d’arrivée saisie par l'internaute : 25 /04 (date hors saison soit 50 € la nuit )
    Date de départ saisie par l'internaute : 15 /05 (date dans période printemps 60 € la nuit )

    Il y a donc 5 jour à 50 € = 250 €
    + 15 jour à 60 € = 900 €
    Donc cout total du séjour : 1150 €


    Exemple 2 :

    Date d’arrivée saisie par l'internaute : 05 /05 (date dans période printemps 60 € la nuit)
    Date de départ saisie par l'internaute : 15 /05 (date dans période printemps 60 € la nuit )
    Il y a donc 10 jour à 50 € = 500 €
    Donc cout total du séjour : 500 €


    Exemple 3 :

    Date d’arrivée saisie par l'internaute : 25 /06 (date dans période printemps 60 € la nuit)
    Date de départ saisie par l'internaute : 05 /07 (date dans période été 70 € la nuit )
    Il y a donc 5 jour à 60 € = 300 € + 5 jours à 70 € : 350 €
    Donc cout total du séjour : 650 €

    Exemple 4 :

    Date d’arrivée saisie par l'internaute : 25 /10 (date dans période printemps 70 € la nuit)
    Date de départ saisie par l'internaute : 25 /11 (date dans période noel 80 € la nuit )

    Il y a donc 5 jour à 70 € = 350 € (du 25/10 au 30/10)
    15 jours en période standard à 50 € : 750 € (du 01/11 au 15/11)
    10 jours en période noel à 80 € : 800 € (du 15/11 au 25/11)
    Donc cout total du séjour : 350 + 750 + 800 = 1900 €

    Enfin bref vous aurez compris il faut penser à tous les cas de figure.

    Si quelqu'un peut m'aider ça serait génial !

    Merci d'avance

    Mathieu

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il suffit de parcourir jour par jour l'intervale demandé par l'internaute et de regarder dans quel tarification il se situe.
    Pour la gestion des semaines (5 jours consécutifs si j'ai bien compris), il faut simplement compter sur combien de jours tu as appliqué la même tarification.

    Bref il n'y a pas de piège PHP, il faut simplement écrire les conditions qui composent ton algorithme.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Salut, merci de ton aide .

    en fait je ne vois pas trop comment faire ce que tu me propose.


    voici la structure de la bdd :

    1 id int(9) AI

    2 id-annonce int(9)

    3 saison text

    4 debut date

    5 fin date

    6 possible text

    7 tarif_nuit int(9)

    8 tarif_semaine int(9)



    La, j'avoue que je galere !

    Je suis en train de travailler sur quelque chose qui ressemble a ca mais ca oublie les periode entre les date saisie

    SELECT *
    FROM

    (

    (SELECT *
    FROM `tarif`
    WHERE `id-annonce` =362319
    AND ('2015-06-09' between debut and fin))

    UNION

    (SELECT *
    FROM `tarif`
    WHERE `id-annonce` =362319
    AND ('2015-06-11' between debut and fin))

    ) COM

    en fait si j'ai 3 périodes : du 5 au 10 , du 10 au 15 et du 15 au 20 et que les date saisie sont : arrivée le 7 , retour le 18 , et bien il me trouve bien la période 1 et 3 mais il ne faut pas oublier la 2 !

    je n'y arrive pas !

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que je te propose c'est de faire un traitement PHP.
    Si tu veux le faire en SQL seulement, il faut poser ta question sur le forum SQL.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ca ne me derange pas de le faire en php, mais je ne vois pas comment, pourrais tu me guider avec un script ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Points : 358
    Points
    358
    Par défaut
    Je pense que ce que te propose sabotage et d'appliquer cette logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $total=0;
    //tant que la date d'arrivé est antérieure a la date de départ
    while($dateArrive<$dateDepart){
        //requête récupérant le tarif pour $dateArrive
        //ajout de ce tarif au total
        //ajout d'un jour à dateArrive
    }

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Super merci, en appliquant cette logique j'ai pu faire ce que je voulais

    Merci encore
    A+
    Mathieu

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

Discussions similaires

  1. [POO] positionner un element en fonction des coordonnées saisies
    Par krousty dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/06/2008, 13h07
  2. Problème de sélection en fonction des dates
    Par skare dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/06/2007, 06h47
  3. [Dates] Une fonction des dates
    Par amine_en_france dans le forum Langage
    Réponses: 3
    Dernier message: 06/03/2007, 12h07
  4. Réponses: 2
    Dernier message: 12/11/2006, 19h23

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