Pb avec variable dynamique

Résolu
biddal Messages postés 45 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 8 août 2011 - 1 juin 2006 à 15:34
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006 - 1 juin 2006 à 16:46
Bonjour j'utilise une variable dynamique dans ma page index dont voici le code:

<td align="left"  width="250" height="249"  background="images\coordonnees.gif ">
    <center>
     <?php
      echo $c1;      
     ?>
     <!-- include('compteur.php3');
      //echo $c1;  -->
    </center>
   </td>
   <td rowspan="2" width="540" valign="top" background="images\accueil.gif">
    <center>
     <?php
      echo $cpp;
     ?>    
    </center>
   </td>
  </tr>
  <tr>
   <td align="left" width="250" height="249" background="images\coordonnees.gif">
    <center>
     <?php
      echo $c2;
     ?> 
    </center>
   </td>
  </tr>
Selon la page sur laquelle je vais, les cadres changent. Mon site se constitue avec un banniere en haut a gauche deux carrés de même tailles pour différentes choses et une page principale sur la droite qui prend tout le reste de la page.
Donc à chaque ouverture d'une nouvelle page, l'intérieur des pages change. Comme vous pouvez le constater j'ai mis echo $c1;
Et c'est la que ca pose probleme. Voici mon code vous allez comprendre:

while ($reponse1 =mysql_fetch_array($reponse))  
{
       $cpp="
Déroulement d'une journée type

                 ----

          <center>$reponse1[horaire]</center>,
          <center>$reponse1[intitule]</center>,
         
        

       Accueil</center>";
 }

Donc ici la variable $cpp qui est le cadre principal de la page recoit le reste du code après.
Or celui-ci ne m'affiche que le dernier enregistrement de la table car a chaque fois qu'il fait un traitement il l'écrase aprés si je comprend bien mon erreur. Mais je ne peux pas mettre while ($reponse1 =mysql_fetch_array($reponse))  dans le $cpp= du fait que sur ma premiere page index j'ai mis echo $cpp; et je vois pas comment je peux faire.
J'espere avoir ete assez clair!
Je vous remercie par avance de votre aide.

7 réponses

cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
1 juin 2006 à 16:32
A ben dans ce cas il faut que tu initialise $cpp avant ton while ($cpp="") et puis dans ton while tu remplace le "$cpp=" par "$cpp.=" pour qu'a chaque boucle ca rajoute la nouvelle chaine dans $cpp ("." est l'opérateur de concatenation en php).

Si encore une fois j'ai rien compris faudrai que tu explique un peu mieu ce que tu veut faire
3
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
1 juin 2006 à 16:03
Effectivement après ton while $cpp ne contient que ce qu'il a reçu lors de la dernière boucle.

Je suis pas sur d'avoir tout compris ce que tu veu faire mais à ta place je remplacerai:
<?php
echo $cpp;
?>
par:
while ($reponse1 =mysql_fetch_array($reponse))  
{
       echo "
Déroulement d'une journée type

                 ----

          <center>$reponse1[horaire]</center>,
          <center>$reponse1[intitule]</center>,
         
        

       Accueil</center>";
 }
0
biddal Messages postés 45 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 8 août 2011
1 juin 2006 à 16:08
oui mais comme je disais la variable $cpp recoit des chose differentes selon sur quel lien je clique donc si je mets directement
while ($reponse1 =mysql_fetch_array($reponse))  
{
       echo "
Déroulement d'une journée type

                 ----

          <center>$reponse1[horaire]</center>,
          <center>$reponse1[intitule]</center>,
         
        

       Accueil</center>";
 }
lorsque je cliquerai sur un lien ca m'affichera toujours la meme chose
0
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
1 juin 2006 à 16:17
A donc j'avai mal compris.
donc si j'ai bien compris (cette fois) tu veu mettre dans $cpp: $reponse1[horaire] et $reponse1[intitule] qui correspondent à un enregistrement en particulier parmis ceux retournés par ta requete SQL?

Si c'est ca pourquoi ne pas mettre la condition qui identifie cet enregistrement dans ta requete SQL comme ca elle te retourne un enregistrement et tu peut changer ton while en if.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
biddal Messages postés 45 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 8 août 2011
1 juin 2006 à 16:22
Non en fait je veux tous les mettre mais vu que la boucle etant a l exterieur du $cpp en fait le traitement se fait une premiere fois et affiche donc le premier enregistrement et apres il rencontre la condition de la boucle lorsu'il reboucle et la vu que l'on est pas en fin de fichier il affiche les autres a la suite mais en écrasant en fait il faudrait que je mette
        $cpp   while ($reponse1mysql_fetch_array($reponse))  
   {
         "
Déroulement d'une journée type

                 ----

          <center>$reponse1[horaire]</center>,
          <center>$reponse1[intitule]</center>,
         
        

       Accueil</center>";
    }
la ca me mettrai tous les enregistremetn a la suite mais dans une variable on peut pas mettre de php apparament!!ca me met toujours une erreur.
Merci pour ton aide quand meme je sais que c 'est pas facile a comprendre!!
0
biddal Messages postés 45 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 8 août 2011
1 juin 2006 à 16:39
Je te remercie c'est impecable ca marche j'ai juste encore un petit probleme pour sortir le titre pour pas qu'il se mette plusieurs fois mais c'est bon je te remercie.
0
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
1 juin 2006 à 16:46
Ben moi (maintenant que j'ai compris ce que tu veux faire) je ferai ca:


$cpp="
Déroulement d'une journée type

Déroulement d'une journée type

\";
while ($reponse1 =mysql_fetch_array($reponse))
{
$cpp.=\"----

<center>$reponse1[horaire]</center>,
<center>$reponse1[intitule]</center>,
\";
}
$cpp.="


Accueil</center>";

Comme ca tu n'as qu'un seul titre, qu'un seul lien accueil et un seul tableau avec plusieurs lignes (et pas plus sieurs tableaux avec une seule ligne)
0
Rejoignez-nous