Notice: Undefined index: id

Résolu/Fermé
vince240986 - 27 août 2011 à 18:57
 vince240986 - 28 août 2011 à 02:43
Bonjour,

Je rencontre un problème que j'ai du mal à comprendre. J'ai un fichier "voir-categorie.php" qui me permet de lister tous les articles d'une catégorie donnée en récupérant l'url, ce qui donne par exemple: "voir-categorie.php?id=1".

Là je n'ai aucun soucis.

Seulement quand j'enlève l'id, logiquement j'ai un message qui m'affiche "Aucun article pour le moment!", ce qui est normal et fonctionne donc correctement. Le soucis c'est que j'ai également une erreur qui m'indique "Notice: Undefined index: id in C:\wamp\www\cms\admin\voir-categorie.php on line 16" et là je ne comprends pas d'où provient le problème.

Je vous laisse le contenu de mon fichier 'voir-categorie.php":


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr-fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />   
<link href="../style.css" rel="stylesheet" type="text/css"/>   
<title>Voir les catégories</title> 
</head>   
 
<body>   
<div id="moncadre"> 
<?php include('menu.php');?>   
<div class="cadrecentrale"> 
<h1>Voir les catégories</h1>

<?php 
$id = $_GET['id']; 

echo '<h1>Catégorie '.$id.'</h1>';
 
// on se connecte à la base de données
include('../connexion_bd.php');
 
mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de sélectionner une base de donnée. Assurez vous d\'avoir correctement remplit les données du fichier connexion_bd.php.');
 
//On selectionne les données
$result = mysql_query("SELECT id, id_categorie, titre FROM CONTENU WHERE id_categorie='$id' ORDER BY id ASC");
 
//on voit si il y a quelque chose
if(mysql_num_rows($result) == 0)
{
echo '<div class="cadre"><p>Aucun article pour le moment!</p></div>';
}

//Si la table contient des articles, on affiche les données
else {
echo '<table style="width: 100%;" cellpadding="2" cellspacing="2">
  <tr>
   <td class="hauttd">Article</td>
   <td class="hauttd">Modifier</td>
   <td class="hauttd">Supprimer</td>
  </tr>';
 
while($affiche = mysql_fetch_array($result)) {
  echo '<tr><td><a href="http://'.$_SERVER['HTTP_HOST'].'/page.php id='.$affiche['id'].'">'.$affiche['titre'].'</a></td>
  <td><a href="modifier-article.php?id='.$affiche['id'].'"><img src="images/modifier.png" alt="Modifier"/></a></td>
  <td><a href="supprimer-article.php?id='.$affiche['id'].'"><img src="images/supprimer.png" alt="Supprimer"/></a></td></tr></table>';
 }
//On ferme else
 }
?>

</div>   <?php include('../footer.php');?>

</div>   
</body>   
</html>



Merci par avance de votre aide!

Vincent

3 réponses

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
27 août 2011 à 19:04
Si tu ne mets pas le id= dans l'url il faut le gérer dans ta page !

ligne 16, pour savoir si on t'as passé un id dans l'url :

if(isset($_GET['id']))
{
// id dans l'url
$id = $_GET['id'];
}
else
{
// pas de id dans l'url
}
0