ereur sur un code php

Eléphanteau du PHP | 33 Messages

03 mars 2006, 03:28

bonjour,
j'ai essayer de creer un code php qui utilise mysql.

ce script permet d'afficher des liens et en fonction du lien sur lequel on clic ont affiche un texte

j'ai juste un problme au niveau de l'affichage du texte

voici mon code :

Code : Tout sélectionner

<? require_once("admin/config.php"); $db = mysql_connect($dbhost, $dbuname, $dbpass); mysql_select_db($dbname,$db); // on cr&eacute;e la requ&ecirc;te SQL $sql = 'SELECT id,titre,contenu FROM js_pages'; // on envoie la requ&ecirc;te $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { // on affiche les informations de l'enregistrement en cours echo '<br><a href="npage2?page='.$data['id'].'">'.$data['titre'].'</a><br>' ; } if($_GET["page"]==$data['id']) { echo $data['contenu']; } mysql_close($db); ?>

j'ai essaye de chercher l'ereur mais imposible de trouver :(
donc si quelqu'un pourait m'aider ce serai gentil :)
merci
Modifié en dernier par Johnstyle le 03 mars 2006, 11:55, modifié 3 fois.

Eléphant du PHP | 312 Messages

03 mars 2006, 10:35

C'est normal que ton
if($_GET["page"]==$data['id'])

 {
 echo $data['contenu'];
 } 
Soit à l'extérieur de ta boucle ?

Eléphanteau du PHP | 33 Messages

03 mars 2006, 11:06

C'est normal que ton
if($_GET["page"]==$data['id'])

 {
 echo $data['contenu'];
 } 
Soit à l'extérieur de ta boucle ?

heu bah en fait j'ai realiser ce code grace a un tutorial et justement j'ai rajouter ça apres
if($_GET["page"]==$data['id'])

 {
 echo $data['contenu'];
 } 
je pensait que ca irai a cet endroit ^^"

Eléphant du PHP | 312 Messages

03 mars 2006, 11:09

Ben le problème c'est que tu as une boucle qui met dans $data les données d'une ligne de ta requête sql et qui recommence jusqu'à ce que toutes les lignes soit parcourues.
Donc quand tu sors de la boucle, tu as $data qui est vide, autrement dit, tu ne pourras pas afficher $data["contenu"];
while($data = mysql_fetch_assoc($req)) {
   // on affiche les informations de l'enregistrement en cours
   echo '<br><a href="npage2?page='.$data['id'].'">'.$data['titre'].'</a><br>';
   if($_GET["page"]==$data['id']) {
      echo $data['contenu'];
   }
}
Comme ça, ça affiche $data['contenu'] à chaque étape de la boucle.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

03 mars 2006, 11:16

Si tu désires afficher à un endroit précis et unique le contenu en cliquant sur chaque lien, tu peux une deuxième requête qui ta prend la variable passé en URL.
<?php
require_once("admin/config.php");
$db = mysql_connect($dbhost, $dbuname, $dbpass);
mysql_select_db($dbname,$db);

// on cr&eacute;e la requ&ecirc;te SQL
$sql = "SELECT id,titre,contenu FROM js_pages";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
{
	// on affiche les informations de l'enregistrement en cours 
	echo '<br><a href="index.php?page='.$data['id'].'">'.$data['titre'].'</a><br>';
}

if(isset($_GET['page']))
{
$sql1 = "SELECT contenu FROM js_pages WHERE id=".$_GET['page'];
$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
$data1 = mysql_fetch_assoc($req1);

echo $data1['contenu'];
}

mysql_close($db);
?>

Eléphanteau du PHP | 33 Messages

03 mars 2006, 11:35

Super !!
merci a tout les 2 c'est exactement ce que je voulais :D

Avatar du membre
ViPHP
ViPHP | 3008 Messages

03 mars 2006, 11:37

N'oublies pas le tit [résolu] ;)