Bonjour à tous,

Je post ici après avoir cherché un peu partout sur le fofo comme sur d'autres site (aucune référence au problème auquel je fais face en ce moment ...). Je précise que je ne suis pas encore un dev chevronné et rompu aux affres du PHP.

J'explique :

Je développe en ce moment une appli en php avec une base mysql.

J'ai créé toutes mes classes, avec des objets qui contiennent d'autres objets et pour lesquelles tout se charge automatiquement au démarrage. Après avoir testé et retesté le bousin, je me suis rendu compte que vu le poids des appels à la base, il valait mieux ne remplir completement ces objets que lorsque cela était vraiment nécessaire (je vous laisse deviner la raison ? bah une grosse perte de temps dans le cas contraire).

Donc là dessus, sur certaines fonctions, je passe un booléen en paramètre pour leur dire s'il faut oui ou non chargé les objets contenus dans les objets recherchés (j'espère que je suis clair ), voir dans la fonction qui pose problème en ce moment, s'il faut enregistrer tous les objets en cascade ou non.

Le problème : quoique je fasse, quelque soit la valeur que je passe en paramètre, elle n'est pas prise en compte (ou plutôt la valeur 'false' est prise en compte à chaque appel).

La question que je me pose, après avoir re-vérifié le script sous toutes les coutures, c'est est ce que cela peut provenir d'un problème de serveur ? (nan, parce que je ne vois vraiment pas ce qui cloche là dedans )

Je vous met un bout de la fonction en question (pas la peine de mettre l'intégralité et de tte façon elle est un peu trop longue pour ça, sans parler de la classe elle même).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
function enregistrer($attr = true)
{
        // Je vous passe l'entrée en matière (vérifications effectuées avant enregistrement des données) et la préparation de la requete, elles ne posent pas problème et la valeur d'entree n'est pas encore utilisée à ce moment là
	if (!Executer($requete))
	{
		return false;
	}
 
	if ($attr)
	{	//	Enregistrement / modification des objets liés
		for ($i=0; $i<$this->nb_objets; $i++)
		{
			if (!$this->les_objets[$i]->set_id($this->id))
			{
				$this->erreur .= $this->les_objets[$i]->erreur;
				return false;
			}
			if (!$this->les_objets[$i]->enregistrer())
			{
				$this->erreur .= $this->les_objets[$i]->erreur;
				$this->sql_erreur .= $this->les_objets[$i]->sql_erreur;
				return false;
			}
		}
	}
 
	return true;
}
J'ai donc plusieurs classes qui fonctionnent sur ce principe, et systématiquement lorsque j'utilise un booléen en entrée, ca ne passe pas (et ca fait quelques heures que je m'arrache les cheveux là dessus )

Help please !