Mon script se répète à chaque résultat.

Eléphant du PHP | 113 Messages

26 oct. 2006, 21:07

Bonjour,
Je m'explique: Sur mon site de citations, je peux choisir un auteur et afficher toutes ces citations.
En bas de la page, après les citations donc, j'y colle un script de pub (ex: tout ...l'auteur... sur Fnac.com).

Mon problème, c'est que ce script se répète autant de fois qu'il y a de citation.
Si quelqu'un avait une idée.
Voilà le script:
					  Encore plus sur <?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?> sur <script language="JavaScript" type="text/javascript">
								urlfnacA="http://www3.fnac";
								urlfnacB=".com/search/quick.do?SearchType=QUICKSEARCH&text=";
								urlcompl="<?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?>&Origin=CITATIONALACON&OriginClick=yes&category=all";
								document.write('<a href="'+urlfnacA+urlfnacB+urlcompl+'" target="_blank" id="grisG">&raquo; FNAC.COM &laquo;</a>');
								</script>
Sur cette page:
<?php
mysql_connect("xxxxx", "xxxxxx", "xxxxxx"); //connexion &agrave; la base
mysql_select_db("citation"); // S&eacute;lection de la base citation
// On est connect&eacute;s, on peut travailler sur la BDD
?> 
<?php
if(isset($_GET['auteur']))
{
$nom = $_GET['auteur'];

   $sql = "SELECT citateurs_celebres.nom, citateurs_celebres.prenom, 
                  citateurs_celebres.comment, citateurs_celebres.id,  
                  citateurs_celebres.numcitateur, citations_celebres.citation, 
                  citations_celebres.id ".
          "FROM citateurs_celebres ".
          "LEFT JOIN citations_celebres ".
          "ON citateurs_celebres.id = citations_celebres.numcitateur ".
          "WHERE citateurs_celebres.nom='".$nom."'";

  $reponse = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

$i = true;

   while ($donnees = mysql_fetch_array($reponse) )
   {
      if($i)
      { ?> 
<span class="Style56">
<?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?>
</span> 
                   <p class="Style59" align="right"><?php echo $donnees['comment'];?> <img src="portrait/<?php echo $donnees['numcitateur'];?>" border="0" align="absbottom" /> </p> 
                   </span> <br />
                      <br /> 
                      </span>
                      <?php
      } 
      echo $donnees['citation']." <br /> "; ?>
                      <span ><span class="Style19">__________________________</span>
                      <script language="JavaScript" src="vote/easy-votes-light.php?idcom=
<?php echo $donnees['id']  ?>&rep=vote" type="text/javascript"

></script>
                      </span><a title="Envoyer cette citation &agrave; un ami" href="#" onclick="window.open('envoi_cit/formulaire.php?id_article=<?php echo addslashes ($donnees['citation'] );?>','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=420, height=250');"><img src="images/envoyer.gif" alt="envoyez cette citation &agrave; un ami !" border="0" align="absmiddle" /></a><br />
                      <br />
					  
					  Encore plus sur <?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?> sur <script language="JavaScript" type="text/javascript">
								urlfnacA="http://www3.fnac";
								urlfnacB=".com/search/quick.do?SearchType=QUICKSEARCH&text=";
								urlcompl="<?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?>&Origin=CITATIONALACON&OriginClick=yes&category=all";
								document.write('<a href="'+urlfnacA+urlfnacB+urlcompl+'" target="_blank" id="grisG">&raquo; FNAC.COM &laquo;</a>');
								</script>
                      <?php
      $i = false;
   }
}
								
// On a fini de travailler, on ferme la connexion :
mysql_close(); // D&eacute;connexion de MySQL
?>

Eléphant du PHP | 135 Messages

26 oct. 2006, 22:06

Mon problème, c'est que ce script se répète autant de fois qu'il y a de citation.
si tu regarde le script de plus prêt, il se trouve dans la boucle qui parcour les résultat :)

sort le de cette boucle, ça devrait mieux se passer :)

Eléphant du PHP | 113 Messages

26 oct. 2006, 22:09

Si je te comprends bien, faut que le script soit aprés:
$i = false;
Mais si je fais ça, il ne reçoit plus les données echo.

Eléphant du PHP | 113 Messages

26 oct. 2006, 22:18

Voilà comment:
<br /> <?php
					$i = false;
					  }
					  }?>
					   Encore plus sur <?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?> sur 
					  <script language="JavaScript" type="text/javascript">
								urlfnacA="http://www3.fnac";
								urlfnacB=".com/search/quick.do?SearchType=QUICKSEARCH&text=";
								urlcompl="<?php				
         echo $donnees['prenom']." ";
         echo $donnees['nom'].""; ?>&Origin=CITATIONALACON&OriginClick=yes&category=all";
								document.write('<a href="'+urlfnacA+urlfnacB+urlcompl+'" target="_blank" id="grisG">&raquo; FNAC.COM &laquo;</a>');
								</script>
	<?php
// On a fini de travailler, on ferme la connexion :
mysql_close(); // D&eacute;connexion de MySQL
?>

Eléphant du PHP | 113 Messages

27 oct. 2006, 07:29

Je crois qu'il y a moyen avec l'instruction "break", mais je n'arrive pas à l'appliquer.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 oct. 2006, 10:25

L'instruction "break" comme son nom l'indique brise la boucle et sort quelque soit le nombre d'itération restant à parcourir...

Tu n'aura donc plus toutes les citations puisque tu vas quitter la boucle prématurément. La solution la plus évidente consiste bien à mettre ton code en dehors de la boucle (d'autant que tu n'en as besoin qu'en bas de page) pour qu'il ne soit pas répété :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 113 Messages

27 oct. 2006, 13:17

OK compris. Mais quand je sort de la boucle, la fonction echo ne marche plus.

Je sens une histoire d' } .

Eléphant du PHP | 113 Messages

29 oct. 2006, 21:16

Ca vient bien des } mais je ne comprends pas.
Est-ce que quelqu'un à une idée ?

Eléphant du PHP | 113 Messages

30 oct. 2006, 19:21

J'ai dit une bêtise ou c'est si compliqué ! :o