PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-09-2010 06:39:14

SomeOne
Membre
Inscription : 07-09-2010
Messages : 2

Notice: Undefined index: ID in C:\wamp\www\menu\fiche3.php on line 3

Bonjour,

n'étant pas très adroit en programmation je viens demander votre aide vis-à-vis du problème suivant
j'ai 3 pages php donc voici les codes

la une :

<?php
require_once("connectdb.php");
$requete="SELECT * FROM categorie";
$resultat=mysql_query($requete);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<table width="350" border="1" cellspacing="0" cellpadding="5">
<tr>
  <td>ID</td>
  <td>Categorie</td>
  <td>Detail</td>
</tr>

<tr>
  <?php while($categorie=mysql_fetch_array($resultat)){?>
</tr>

<tr>
    <td><?php echo $categorie['ID'];?></td>
    <td><?php echo $categorie['intitule'];?></td>
  <td><a href="plat.php?ID=<?php echo $categorie['ID'];?>">voir</td>
</tr>

<?php } ?>

</table>

</body>
</html>

la deux:

<?php
require_once("connectdb.php");
$requete="SELECT reference FROM plat WHERE categorieID='".$_GET['ID']."'";
$resultat=mysql_query($requete);
$plat=mysql_fetch_array($resultat);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
   
<table width="400" border="1" cellspacing="0" cellpadding="5">
<tr>
  <td>Plat</>
  <td>Detail</td>
</tr>
<?php while($plat=mysql_fetch_array($resultat)){?>
<tr>
 
    <td><?php echo $plat['reference'];?></td>
  <td><a href="detail.php?reference=<?php echo $plat['reference'];?>">voir</td>
</tr>
<?php } ?>
</table>
</body>
</html>

la 3:

<?php
require_once("connectdb.php");
$requete="SELECT description,prix FROM plat WHERE reference='".$_GET['reference']."'";
$resultat=mysql_query($requete);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<table width="350" border="1" cellspacing="0" cellpadding="5">

<tr>
  <td>Description</td>
  <td>Price</td>
</tr>

<tr>
  <?php while($plat=mysql_fetch_array($resultat)){?>
</tr>

<tr>
    <td><?php echo $plat['description'];?></td>
    <td><?php echo $plat['prix'];?></td>
</tr>

<?php } ?>

</table>

</body>
</html>

sachant que en fonction du choix effectué en page 1 cela donne le contenu de la 2 et en fonction du 2 cela donne le contenu de 3.

Lorsque je test à  partir de la une tous ce passe mais lorsque j'utilise je désire inclure ses 3 pages dans une page php et bien dans le cadre 1 il y à effectivement la page 1 mais dans le cadre 2 et 3 il y a ceci:  Notice: Undefined index: ID in C:\wamp\www\menu\fiche3.php on line 3

d'avance je vous remercie pour votre aide

Hors ligne

#2 07-09-2010 11:40:34

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Notice: Undefined index: ID in C:\wamp\www\menu\fiche3.php on line 3

salut,

c'est simple tu utilises un index du tableau $_GET sans en vérifier l'existence ($_GET['id'] le tout dans le fichier fiche3.php à la ligne 3. ce qui est la cas dans la seconde partie de ton code.

je n'ai pas exactement compris ce que tu veux faire, mais il faut toujours vérifier qu'un index existe dans un des tableaux "fournit" par les utilisateurs car tu ne peux être certain que l'url ou le formulaire n'ont pas été bidouillés.

donc utilise isset ou empty pour être certain que ton index existe dans le tableau voulu afin de pouvoir exécuter le code en conséquence (tu le fais aussi pour $_GET['reference'].

Pour info le select * c'est  mal smile (indique explicitement les colonne que tu souhaites, c'est plus clair et cela évite de récupérer des infos inutiles). La guerre des étoiles

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 08-09-2010 02:55:58

SomeOne
Membre
Inscription : 07-09-2010
Messages : 2

Re : Notice: Undefined index: ID in C:\wamp\www\menu\fiche3.php on line 3

yop ,

donc si je comprend bien cela devrait plus ressembler a cela ?

<?php

require_once("connectdb.php");

$id = (isset($_GET['id'])) ? $_GET['id'] : 0;

$requete="SELECT reference FROM plat WHERE categorieID='".$id."'";

$resultat=mysql_query($requete);

$plat=mysql_fetch_array($resultat);

Dernière modification par SomeOne (08-09-2010 05:32:32)

Hors ligne

#4 08-09-2010 05:42:45

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Notice: Undefined index: ID in C:\wamp\www\menu\fiche3.php on line 3

non, car tu n'a pas de valeur pour id et cela ne représente rien !

tu ne fait la requete et sont exploitation que si la variable est présente dans l'url.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums