Problème d'affichage de données via un lien

Sid05 Messages postés 19 Statut Membre -  
Sid05 Messages postés 19 Statut Membre -
Bonjour,

J'ai une page recette.php. Quand je clique sur le nom de la recette (nomRecettes), elle envoie vers la page "recettes_affichage.php" ou la recette s'affiche au complet. Seulement, j'ai chaque fois "sujet non défini qui s'affiche" et non la recette. Je ne vois pas l'erreur.

recette.php:
<?php 

?>

<body>

       <ul>
<form>   

<label for="categorie" class="select">Rechercher par catégorie</label>

<?php 
include "include/connexion.inc.php" ; 
?>

<?php 
echo'<form method="get" action="" >';
echo'<input type="hidden" name="page" value="06" />';

$reponse = mysql_query("select * from tblcategories order by nomCat" ); 

echo'<select name="idCat">'; 
while ($donnees = mysql_fetch_array($reponse) ) 
{ 
 
echo '<option value="'.$donnees['idCat'].'">'.$donnees['nomCat'].'</option>';
 
} 
echo'</select>';
echo'<input type="submit" value=" ok ">';
echo'</form>';
?>
<br /><br />
<?php

 $sql = "SELECT R.*, P.* 
   FROM epicerie.tblrecettes R
   INNER JOIN tblcategories P
   ON R.idCat = P.idCat
   WHERE P.idCat = $idCat AND R.valide='1'
   ORDER BY R.nomRecettes ";
 $rs = mysql_query($sql) or die ("Erreur de requête:$sql");
 
 $i=1 ;
 while($row=mysql_fetch_array($rs)) {
  extract($row) ;
 $url = "uploads/" . $photos ;
 
?>
 
<table>    
  <tr>
         <th rowspan="2"><img src="<?php print $url ;?>" class="photo" /></a></th>
            <th valign="top"><a href="index.php?page=23?id_recette_a_lire=' . $row['idRecettes'] . '"><?php print $nomRecettes;?> (<?php print $nomCat;?>)</a></th></tr>
            <tr>
            <td valign="top">Temps de préparation: <?php print $temps_prepa;?> - Temps de cuisson: <?php print $temps_prepa;?><br />
            Difficulté: <?php print $difficulte;?></td></tr>
            
            
 </td>
</tr>


</table>  
<br /><br />  
  
  <?php
  $i++ ; 
 }
   ?> 
 

</body>
</html>




recettes_affichage.php:
<?php
$link = mysql_connect("localhost:8889", "root", "root") 
  or die ("Etape 1 : connexion au serveur échouée") ;

$ok = mysql_select_db("epicerie") 
or die ("Etape 2 : BD introuvable") ;
?>

<ul>

<?php

if (!isset($_GET['id_recette_a_lire'])) {
 echo 'Sujet non défini.';
}
else { 


echo'<form method="get" action="" >';

$sql = 'SELECT R.*, P.* 
   FROM epicerie.tblrecettes R
   INNER JOIN epicerie.tblcategories P
   ON R.idCat = P.idCat
   WHERE R.idRecettes=" . $_GET["id_recette_a_lire"]';
 
 $rs = mysql_query($sql, $link);
 echo "<table>\n";
 
 while ($row = mysql_fetch_array($rs)) {

 echo ''.$row['nomRecettes'].'<br />';
 echo '(par '.$row['auteur'].')<br /><br />';
 echo "<tr>";
 echo "<th>";
 echo '<img src="./mini/'.$photo.'" border=\"none\" height=\"auto\" width=\"300px\"/><br/>';
 echo "</th>";
 echo "<td>";
 echo 'Type de plat: '.$row['nomCat'].'<br /><br />';
 echo 'Temps de préparation: '.$row['temps_prepa'].'<br /><br />';
 echo 'Temps de cuisson: '.$row['temps_cuisson'].'<br /><br />';
 echo 'Difficulté: '.$row['difficulte'].'<br /><br />';
 echo "</tr>";
 echo "<tr>";
 echo "<td>";
 echo '<b>Ingrédients:</b> '.$row['nomIng'].'<br /><br />';
 echo "</td>";
 echo "<tr>";
 echo "<td>";
 echo '<b>Préparation de la recette (pour '.$row['nombre_pers'].'personnes)</b><br /><br />';
 echo ''.$row['description'].'<br /><br />';
 echo "</td>";
 echo "</tr>";
 
echo "</table>\n";
}
mysql_free_result ($req);
mysql_close ();
}
?>  
</body>
</html>
A voir également:

4 réponses

Pitet Messages postés 2845 Statut Membre 527
 
Salut,

La construction de ton lien n'est pas correcte : on utilise ? pour ajouter les paramètres à la fin d'une url (paramètre GET) puis on utilise & pour séparer chaque paramètre.

Donc ton lien corrigé devrait être :
<a href="index.php?page=23&id_recette_a_lire=' . $row['idRecettes'] . '"><?php print $nomRecettes;?> (<?php print $nomCat;?>)</a>


Bonne journée
0
Sid05 Messages postés 19 Statut Membre
 
Merci beaucoup pour la reponse. En effet, il ne marque plus sujet non défini... mais il ne marque plus rien du tout :s
0
Pitet Messages postés 2845 Statut Membre 527
 
Surement car ta requête ne retourne aucun résultat (d'ailleurs celle-ci est vulnérable aux injections sql).

Il faudrait vérifier que ta requête te retourne un résultat, sinon afficher un message du genre "Aucune recette ne correspond à cet identifiant".
0
Sid05 Messages postés 19 Statut Membre
 
Si dans la base de données, la recette est bien complète et devrait s'afficher
0