Multiple include et variable unique

Eléphant du PHP | 291 Messages

09 févr. 2016, 21:34

Bonsoir,

Suite à un changement de version de Wamp je suis confronté à une erreurs que je ne comprend pas.

J'ai fais un système qui me permet de sélectionner et d'afficher du contenu soit dans une colonne soit dans le "contenu" soit les deux. Pour ce faire j'utilise plusieurs foreach qui vont me chercher les données dans ma base.

Par exemple j'inclus dans ma colonne un projet et dans mon contenu deux projet dont celui qui est dans la colonne. Pour l'affichage je n'utilise qu'une page de mise en page donc Je fais un include de cette page plusieurs fois (trois fois dans cet exemple) pour afficher mes projets.

Mon problème est que suite à cette mise à jour je ne peux pas réutiliser les variables sans que le code ne soit pas erroné.

Il semblerait que le problème se pose pour les deux projets identiques, si j'en enlève un des deux tout fonctionne normalement. Si je laisse les deux je ne peux utiliser le titre (par exemple) qu'une seule fois ($projet->titre).

Je ne sais pas si je suis clair mais j'ai essayé plein de choses mais je ne parviens pas à solutionner mon problème. Auriez-vous des avis ?

D'avance merci.

Mammouth du PHP | 804 Messages

09 févr. 2016, 23:25

Bonsoir,
Si tu nous dépose pas ton code on va avoir du mal à cerner le problème, tu n'a rien à nous mettre sous la dent ?
d'après ce que tu explique je pense que cela ne doit pas être compliquer à régler, c'est un simple problème de condition et d'affichage, peu être n'utilise tu pas la bonne méthode.
dog

Eléphant du PHP | 291 Messages

11 févr. 2016, 14:00

Bonjour,

Merci d'avoir pris le temps de me lire.
J'y ai passé déjà presque deux jours sans trouver de solution.
Le but premier était de passer de Wamp 2.4 à Wamp 3.0. Au début je pensé que cela pouvait venir du paramétrage donc j'ai modifier les extensions pour coller au plus proche de Wamp 2.4. J'ai essayé avec Wamp 2.5 et c'est pareil.
Rien à faire mon code ne s'affiche toujours pas correctement.

Pour schématiser car coller le code complet serait trop long, j'ai une page nommée index.php qui contient :

Code : Tout sélectionner

<div class="principal"> <div class="menu"> <?php include('menu.php'); ?> </div> <div class="contenu"> <?php include('contenu.php'); ?> </div> </div>
menu.php

Code : Tout sélectionner

<?php $menu = array(1); foreach($menu as $k => $v){ $projet = $this->request('Projet',$v); include('template_projet.php'); } ?>
contenu.php

Code : Tout sélectionner

<?php $contenu = array(2,1); foreach($contenu as $k => $v){ $projet = $this->request('Projet',$v); include('template_projet.php'); } ?>
template_projet.php

Code : Tout sélectionner

<div> <h1><?php echo $projet->titre; ?></h1> <h2><?php echo $projet->soustitre; ?></h2> <div><?php echo $projet->titre; ?></div> </div>
Si je commente le deuxième $projet->titre dans le template tout se passe correctement sinon mon code est complètement désordonné.

J'espère que c'est clair.

Mammouth du PHP | 804 Messages

11 févr. 2016, 17:14

tu as essayer de renommer autrement tes variables $projet , je vois que tu utilise le me même nom pour les deux ?

tu peu nous montrer l'erreur s'il te plait

Eléphant du PHP | 291 Messages

24 févr. 2016, 19:20

Bonsoir,

Désolé pour cette réponse ultra tardive !
J'ai effectivement passé beaucoup de temps sur mon code et je crois avoir trouvé le morceau qui ne va pas. il s'agit de la fonction ob_start qui n'était pas active en local (dans une boucle).

Je poursuis mes test.