mluce Posté 22 Février 2007 Posté 22 Février 2007 Bonjour, Je dois réaliser un formulaire de réservation pour de la location d'engins à deux-roues qui calcule automatiquement le tarif que devra payer le client en fonction de trois critères : - le temps qu'il passera avec le véhicule (cela peut aller de quelques heures à quelques mois) - les heures pendant lesquelles il aura le véhicule en sa possession (certaines heures sont plus chères que d'autres, par exemple le soir) - les jours pendant lesquels il aura le véhicule en sa possession (certains jours, comme les jours fériés ou les dimanches, sont plus chers) Pour l'instant, tout ce que je sais faire avec certitude, c'est le calcul du nombre d'heures total passé avec le véhicule. Pour ce qui concerne les heures de la journée et les jours de l'année plus chers, je ne sais pas trop comment m'y prendre. Je suppose qu'il me faut créer un calendrier dans une base de données mysql, par contre pour faire communiquer le formulaire et la base de données je ne sais pas trop. De plus, le coup du calendrier résout le problème des jours plus chers mais pas forcément le problème des heures plus chères. Quelqu'un aurait-il une piste à me donner ? Merci beaucoup !
K-Ola Posté 22 Février 2007 Posté 22 Février 2007 Alors personnellement ,je le verrais comme ça: Chaque élément est un élément constitutif du prix. Tu aura par exemple dans ta base de donnée une table pour chaque créneau horaire c'est à dire un identifiant,une heure début,une heure de fin et un tarif. Donc lorsque tu récupére ton horaire,tu regarde entre quel borne il se situe et selon ca tu as ton tarif horaire. Ensuite,pour le jour,tu fait simplement une table avec un jour correspondant à un tarif et tu as ton tarif du jour. En additionnant chaque élément,tu obtient ton tarif.
mluce Posté 23 Février 2007 Auteur Posté 23 Février 2007 En fait ce n'est pas simple de mettre une heure de début et de fin pour chaque identifiant car l'utilisateur peut choisir le nombre de jours et d'heures qu'il veut donc les possibilités pour le début et la fin sont illimités
Leonick Posté 24 Février 2007 Posté 24 Février 2007 comme te l'a dit K-Ola, il suffit de faire un tarif (ou coefficient) pour chaque heure de la journée ou de la semaine et ensuite, par exemple, du mardi 9h au vendredi 18h, il suffit d'additionner tous les coefficients horaires entre ces 2 bornes dans ton calendrier des tarifs.
mluce Posté 5 Mars 2007 Auteur Posté 5 Mars 2007 OK. Savez-vous comment convertir du texte en format date ? Mon utilisateur rentre sa date de début et de fin en format texte par le biais de menus déroulants. Or, pour que je puisse comparer cette date avec celles qui sont rentrées dans la base de données, il faut que ce texte soit au préalable converti au format date. Je n'arrive pas à trouver comment faire, vous pouvez m'aider ?
mluce Posté 5 Mars 2007 Auteur Posté 5 Mars 2007 Merci mais cette fonction permet de transformer un texte en timestamp. Moi ce n'est pas d'un timestamp dont j'ai besoin mais juste d'un format date. Il n'y a pas une fonction pour ça ?
Leonick Posté 5 Mars 2007 Posté 5 Mars 2007 je n'avais pas fait attention que le choix se faisait par menus déroulant. Il suffit alors de recréer la date $jour."/".$mois."/".$annee
mluce Posté 5 Mars 2007 Auteur Posté 5 Mars 2007 J'ai créé une variable "$annee-$mois-$jour" pour recréer le même format que dans la base de données mais ça ne marche pas. Ma date semble être interprétée comme du texte quand j'essaie de la comparer avec les dates de ma base.
mluce Posté 6 Mars 2007 Auteur Posté 6 Mars 2007 Finalement, j'ai trouvé la solution à mon problème. Je créais une variable de date au format yyyy-mm-dd. Finalement, j'ai essayé plus ou moins au hasard d'enlever les tirets. Et le format yyyymmdd est reconnu sans problème par ma base de données, youpi !
Sarc Posté 6 Mars 2007 Posté 6 Mars 2007 Tu as mis tes colonnes en type "DATE" dans la base de données ? C'est bizarre que les dates en "yyyy-mm-dd" ne soient pas reconnues... Elles sont censées l'être quand le type dans la BDD est bon !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant