Bonjour.
J'ai créé un tableau d'objets à 2 dimensions.
Pour remplir ce tableau, j'utilise des fonctions...
Or, si la première fonctions me renvois les résultats escomptés, la seconde se comporte comme si la requête sql qui la rensigne ne renvoyait pas de résultat. Or, après vérification, cette requête fonctionne parfaitement...
Je précise également qu'il n'y a pas de conflit de variables (j'ai déjà testé...)...
ci-dessous le code qui pose problème, ça peux toujours aider...
--------------------------------------------------------------
Les objets du tableau sont définit par une classe, voici deux fonctions permettant de remplir deux tableaux appartenant a cette classe :
//ajoute un valeur au tableau des reservations
function ajout_reservation($nom_matos)
{
$nb=count($this->reserv);
$this->reserv[$nb]=$nom_matos;
$this->majetat();
}
//ajoute un valeur au tableau des rendez-vous
function ajout_rendez_vous($nom_personne)
{
$nb=count($this->rdv);
$this->reserv[$nb]=$nom_personne;
$this->majetat();
}
--------------------------------------------------------
en rlation avec mon problème, la classe comprend un variable état dont la valeur evolue selon le remplissage des tableaux ci dessus, l'évolution se fait grâce a la fonction suivante :
//met a jour la variable etat et fonction des tableaux
function majetat()
{
if ((count($this->reserv)>0) and (count($this->rdv)>0))
{
$this->etat="Réunion";
}
elseif (count($this->reserv)>0)
{
$this->etat="Réservation";
}
elseif(count($this->rdv)>0)
{
$this->etat="Rendez-vous";
}
else
{
$this->etat="Libre";
}
}
-------------------------------------------------------------
et voici la fonction qui remplis le tableau d'objet lui même :
function occuper($dated, $datef, $codeutilt)
{
$req_rsv="select * from reservation where jour >= '$dated' and jour <= '$datef' and Code_util= '$codeutilt'";
$req_rdv="select * from rendez_vous where jour >= '$dated' and jour <= '$datef' and demandeur= '$codeutilt'";
$res_rsv=mysql_query($req_rsv) or die("erreur sql, impossible d'executer la requête : ".$req_rsv.'<br>'.mysql_error());
$res_rdv=mysql_query($req_rdv) or die("erreur sql, impossible d'executer la requête : ".$req_rdv.'<br>'.mysql_error());
//création du tableau des reservation/rendez-vous
$occupation=occupationtab();
//parcourt les réservations pour mettre a jour le tableau occupation
while ($row_rsv=mysql_fetch_assoc($res_rsv))
{
//récupération des vraiables temporaires nécessaires
$jourt=$row_rsv['jour']; //date du jour concerné
$heuret=$row_rsv['heure']; //heure de début de la réservation
$dureet=$row_rsv['duree_Res']; //durée de la réservation
//une occupation enregsitrée est entrée dans le tableau
if ((substr($heuret,0,1)=='0')&&(substr($heuret,1,1)!='0'))
{
$heuret=substr($heuret,1,7);
}
$occupation[$jourt][$heuret]->ajout_reservation($row_rsv['code_matos']);
//si la réservation occupe plus d'une tranche de 30 minutes, il faut également entrer la réservation la case suivante du tableau
while($dureet>30)
{
$dureet=$dureet-30;
/*avancé d'une plage horaire. (jour, mois année en cas de besoin)
les paramètres sont passé par références, donc modifiés par la fonction.*/
avance_horaire($jourt, $heuret);
$occupation[$jourt][$heuret]->ajout_reservation($row_rsv['code_matos']);
}
}
//parcourt les rendez-vous pour mettre a jour le tableau occupation
while ($row_rdv=mysql_fetch_assoc($res_rdv))
{
//récupération des variables temporaires nécessaires
$jourt=$row_rdv['jour']; //date du jour concerné
$heuret=$row_rdv['heure']; //heure de début du rendez-vous
$dureet=$row_rdv['duree_rdv']; //durée du rendez-vous
//une occupation enregsitrée est entrée dans le tableau
if ((substr($heuret,0,1)=='0')&&(substr($heuret,1,1)!='0'))
{
$heuret=substr($heuret,1,7);
}
$occupation[$jourt][$heuret]->ajout_rendez_vous($row_rdv['demandeur']);
//si le rendez-vous occupe plus d'une tranche de 30 minutes, il faut également entrer le rendez-vous dans la case suivante du tableau
while($dureet>30)
{
$dureet=$dureet-30;
/*avancé d'une plage horaire. (jour, mois année en cas de besoin)
les paramètres sont passé par références, donc modifiés par la fonction.*/
avance_horaire($jourt, $heuret);
$occupation[$jourt][$heuret]->ajout_rendez_vous($row_rdv['demandeur']);
}
}
return $occupation;
}
Et comme ça fait 3 jours que je meprend la tête la dessus, je prie pour que vous trouviez LA (les??) conneries que je n'ai pas remarqué...