[PHP] Tableau de disponibilité

Fermé
MuronY Messages postés 47 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 27 août 2008 - 18 mai 2007 à 17:16
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 19 mai 2007 à 11:35
Bonjour a tous le monde : )

Apres des heures et des heures a passé sur un tableau de disponibilité et voyant que je n'y arriverai jamais, je vient demandé de l'aide ^^"
Je m'explique je develloppe en ce moment un site pour des gites de campagnes, il me faut donc confectionner un tableau de disponibilité afin que les internaute puissent voir la disponibilité du gite pour le loué.

J'ai donc essayé de faire un tableai en PHP avec un base de donné et cela donne sa :



-- phpMyAdmin SQL Dump
-- version 2.6.1
-- https://www.phpmyadmin.net/
-- 
-- Serveur: localhost
-- Généré le : Jeudi 10 Mai 2007 à 12:02
-- Version du serveur: 4.1.9
-- Version de PHP: 4.3.10
-- 
-- Base de données: `projet`
-- 

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

-- 
-- Structure de la table `jour`
-- 

CREATE TABLE `jour` (
  `Jour` char(2) character set latin1 collate latin1_general_cs NOT NULL default '',
  PRIMARY KEY  (`Jour`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `jour`
-- 

INSERT INTO `jour` VALUES ('01');
INSERT INTO `jour` VALUES ('02');
INSERT INTO `jour` VALUES ('03');
INSERT INTO `jour` VALUES ('04');
INSERT INTO `jour` VALUES ('05');
INSERT INTO `jour` VALUES ('06');
INSERT INTO `jour` VALUES ('07');
INSERT INTO `jour` VALUES ('08');
INSERT INTO `jour` VALUES ('09');
INSERT INTO `jour` VALUES ('10');
INSERT INTO `jour` VALUES ('12');
INSERT INTO `jour` VALUES ('13');
INSERT INTO `jour` VALUES ('14');
INSERT INTO `jour` VALUES ('15');

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

-- 
-- Structure de la table `jourpri`
-- 

CREATE TABLE `jourpri` (
  `JourP` char(2) NOT NULL default '',
  `MoisP` text NOT NULL,
  `JourPri` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `jourpri`
-- 

INSERT INTO `jourpri` VALUES ('02', 'Janvier', 'Janvier 02');

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

-- 
-- Structure de la table `mois`
-- 

CREATE TABLE `mois` (
  `NumMois` char(2) character set latin1 collate latin1_general_cs NOT NULL default '',
  `NomMois` text character set latin1 collate latin1_general_cs NOT NULL,
  PRIMARY KEY  (`NumMois`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `mois`
-- 

INSERT INTO `mois` VALUES ('01', 'Janvier');
INSERT INTO `mois` VALUES ('02', 'Fevrier');
INSERT INTO `mois` VALUES ('03', 'Mars');
INSERT INTO `mois` VALUES ('04', 'Avril');
INSERT INTO `mois` VALUES ('05', 'Mai');
INSERT INTO `mois` VALUES ('06', 'Juin');
INSERT INTO `mois` VALUES ('07', 'Juillet');
INSERT INTO `mois` VALUES ('08', 'Aout');
INSERT INTO `mois` VALUES ('09', 'Septembre');
INSERT INTO `mois` VALUES ('10', 'Octobre');
INSERT INTO `mois` VALUES ('11', 'Novembre');
INSERT INTO `mois` VALUES ('12', 'Decembre');






Voila donc ma base de données et la page en php







<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>gites</TITLE>
<META NAME="description" CONTENT="Projet">
<META NAME="keywords" CONTENT="Projet, STG, GSI">
<META NAME="author" CONTENT="Nous ?">
<link href="style.css" rel="stylesheet" type="text/css"> 
</HEAD>
<BODY>


<?php 
include("connexion.php"); 

$requete1="SELECT * FROM jour ORDER BY Jour;"; // Requête 
$resultat1=mysql_query($requete1); // Envoi de la requête 

$requete2="SELECT * FROM mois ORDER BY NumMois;"; // Requête 
$resultat2=mysql_query($requete2); // Envoi de la requête 

$requete4="SELECT MoisP='Janvier', JourP='$requete1' FROM jour, mois, JourPri;" ; // Requête 
$resultat4=mysql_query($requete4); // Envoi de la requête 

$requete3="SELECT JourPri FROM jourpri WHERE MoisP='Janvier' AND JourP=01;"; // Requête 
$resultat3=mysql_query($requete3); // Envoi de la requête 

?>
   

<DIV ALIGN="center">
<B><FONT COLOR="black">Disponibilité du gite</B></FONT><BR><BR>
<TABLE BORDER="1" WIDTH="80%" CELLSPACING="0" BORDERCOLOR="green" CELLPADDING="2">

	<TR>
		<TD BGCOLOR="darkred" ALIGN="center"><FONT COLOR="white" TEXT="white"><B>Jour</B></FONT></TD>
<?php
while ($boucle2 = mysql_fetch_array($resultat2)) 
	{ 
?>
		<TD BGCOLOR="darkred" ALIGN="center" name="<? echo"$boucle2[NomMois]";?>><FONT COLOR="white"><B><? echo "$boucle2[NomMois]";?></B></FONT></TD>

	<? } ?>	
</TR>

<?php
	while ($boucle1 = mysql_fetch_array($resultat1)) 
	{ 
?>


<TR>
	<TD BGCOLOR="darkred" ALIGN="center" name="<? echo"$boucle1[Jour]";?>"><FONT COLOR="white"><B><? echo "$boucle1[Jour]";?></B></FONT></TD>

<? } ?>

	<TD ALIGN="center" name="<? echo"$resultat4";?>"><? if ($resultat4 == $resultat3) {
				echo '<img src="images/imgr.jpg">';
			}
		else {
			echo '<img src="images/imgv.jpg">';
			} ?></TD>

</TR>


	
</BODY>
</HTML>



Le resultat de tout ceci n'est pas trés concluant, essayé de comprendre un peu le code et si vous avez une idée n'hesité pas je suis preneur de tous ^^
Merci d'avance a tous ceux qui vont ce penché sur mon probleme : )
A voir également:

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
18 mai 2007 à 21:06
salut Murony,

tu crois vraiment que tu vas trouver des volontaires ?

il faudrait créer les tables, tester la page, trouver l'erreur ou les erreurs et te poster la réponse ?

je ne crois pas que tu trouveras de volontaires.

moi, je sors de table et je n'ai pas envie de me coller une indigestion de code pour quelqu'un d'autre…
-;o)

essaie de décrire ton problème précisément, en nous disant tout aussi précisément où tu bloques (un code ou un message d'erreur, peut être…) et enfin si possible fournis nous une version en ligne.
ensuite je suis sûr que les bonnes volontés afflueront pour essayer de résoudre ton problème !

<edit>fouillouillou !!! je viens de lire le code sql (et oui, malgré ce que j'ai dit…) et c'est loin d'être clair… explique nous ce que tu souhaites mais aussi comment tu t'y es pris… les infos que tu veux stocker dans tes tables par exemple…</edit>

à plus
0
MuronY Messages postés 47 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 27 août 2008 1
18 mai 2007 à 22:55
alors j'admet comme sa je n'ai pas vraiment detaillé le code mais je m'explique ^^
dans ma page j'ai plusieur boucle unhe pour le jour qui affichera les jour (1,2,3,4,5 etc) une pour les mois que le loueur dispose pour l'anné (janvier, fevrier, mars etc)
et a l'intereiur du tableau des case rouge ou verte suivant si le jour est pris ou libre.
J'ai donc une derniere table pour les jour prit en relation avec la table mois et la table jour.
ensuite le tableau sur la page recapitule les jour de libre et les jour pris de l'anné entiere.
Il n'y a aucune erreur dans le code tou est bon, il manque un boucle le "if isset" que je n'arrive pas a faire : /
je suis pret a remanier mon code c'est a dire decortiqué les mois si cela falicite la création ^^. Je me pencherez donc sur cette idé n'arrivant pas a develloppé celci : /
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
19 mai 2007 à 11:35
bonjour,

ton besoin est de stoker les dates des jours "pris" pour pouvoir ensuite les affichés (sous forme de tableau ou autre). mais ta réponse ne répond pas du tout à cette problématique.

une date doit être stockée au format complet année/moi/jour.
il ne sert à rien de stocker le nom des mois dans une base de données, il y a des fonctions php pour cela.
par ailleurs, l'année civile ne doit pas être stockée non plus. tu afficheras ton tableau en créant un calendrier perpétuel en php uniquement.

tu pourrais le faire ainsi :

table pour les réservations
• un identifiant unique
• l'identifiant de la personne qui réserve
• la date de début de réservation
• la date de fin de réservation

table pour les clients
• un identifiant unique
• nom
• prénom
• les autres infos que tu souhaites…

table de relation client/réservation
• un identifiant unique
• id client
• id réservation

si tu ne veux que les réservations (à mon avis ce serait dommage de se contenter de cela) tu peux utiliser seulement la première table.
tu peux aussi ne coder qu'avec les réservations dans un premier temps puis ajouter la gestion des clients quand tu auras pris les choses en main.

pour le reste, ce n'est que du php (afficher le calendrier, trouver le nom des jours et des mois, déterminer le premier et dernier jour du mois…).
pour afficher les réservations une requête sur la table de réservation en triant par date de début, à chaque réservation tu colores les jours compris dans l'intervalle début-fin.

qu'en penses-tu ?
0