Code identique au résultats différents...

engelho Messages postés 115 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 2 août 2005 - 21 juin 2004 à 08:46
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 - 1 juil. 2004 à 20:37
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.'
'.mysql_error());
$res_rdv=mysql_query($req_rdv) or die("erreur sql, impossible d'executer la requête : ".$req_rdv.'
'.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é...

1 réponse

cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
1 juil. 2004 à 20:37
dans ta 2ème fonction à la 2ème ligne c'est pas $this->reserv mais $this->rdv !!! ca doit vraiment te prendre la tête surtout pour une erreur aussi naze de copier-coller ! moi-aussi ca m'arrive trop souvent...

sinon ton code est parfait, jte félicites, continue si tas pas abandonné à cause de cette erreur qui vaut rien...

Houzéf@ - www.123toto.com
0
Rejoignez-nous