Page 1 sur 1

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

Posté : 26 oct. 2006, 21:07
par Stegue
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
?>

Posté : 26 oct. 2006, 22:06
par Erazer
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 :)

Posté : 26 oct. 2006, 22:09
par Stegue
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.

Posté : 26 oct. 2006, 22:18
par Stegue
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
?>

Posté : 27 oct. 2006, 07:29
par Stegue
Je crois qu'il y a moyen avec l'instruction "break", mais je n'arrive pas à l'appliquer.

Posté : 27 oct. 2006, 10:25
par Ryle
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é :)

Posté : 27 oct. 2006, 13:17
par Stegue
OK compris. Mais quand je sort de la boucle, la fonction echo ne marche plus.

Je sens une histoire d' } .

Posté : 29 oct. 2006, 21:16
par Stegue
Ca vient bien des } mais je ne comprends pas.
Est-ce que quelqu'un à une idée ?

Posté : 30 oct. 2006, 19:21
par Stegue
J'ai dit une bêtise ou c'est si compliqué ! :o