Voici un script permettant d'ajouter, modifier ou supprimer des données
dans la base Mysql annuaire (id, nom, prenom, tel).
Lorsque je veux modifier une donnée voici le message d'erreur (à partir de la ligne 161 du script): Notice: Undefined variable: id in D:\Program Files\wamp\www\form\annuaire\annuaire.php
Merci d'avance pour votre aide
<html><head><title>Annuaire Téléphonique v1.0</title>
<style type="text/css">
<!--
A {
text-decoration: underline;
color: #000000
}
a:hover {
text-decoration: none;
color: Red
}
input{
text-decoration: none;
color: #000000;
background-color : #FFFFFF;
border : 1px solid #000000;
}
submit{
text-decoration: none;
color: #000000;
background-color : #FFFFFF;
border : 1px solid #000000;
}
-->
</style></head>
<body><font face="arial">
<?php
$id = (isset($_POST['id'])) ? $_POST['id'] : '';
$nom = (isset($_POST['nom'])) ? $_POST['nom'] : '';
$prenom = (isset($_POST['prenom'])) ? $_POST['prenom'] : '';
$tel = (isset($_POST['tel'])) ? $_POST['tel'] : '';
//-----------------------------------------------------------------------------
// Connection au serveur
//-----------------------------------------------------------------------------
mysql_connect("localhost", "root", "") or die("erreur de connexion au serveur");
mysql_select_db("tenniscastelnauvien") or die("erreur de connexion à la base");
//if (!$bdd)
// {
// echo"<center><h4>Impossible de se connecter à la base de données.</h4></center>";
// exit;
// };
echo "<table align='center'><tr><td>
<h2>Annuaire Téléphonique</h2>
<li><a href='annuaire.php?task=1'>ajouter une entrée dans la base</a></li><br>
<li><a href='annuaire.php?task=2'>recherche dans la base</a></li>
</td></tr></table>
<hr color='#000000'>";
if(!empty($_GET['task']))
{
switch($_GET['task'])
{
case 1: // ajouter une entrée dans la base
if (!empty($_POST['op1']))
{
$query="INSERT INTO annuaire VALUES ('','" . $nom ."','" . $prenom ."','" . $tel ."')";
$res=mysql_query($query);
if ($res)
{
echo"<center><h4>Entrée ajoutée</h4></center>";
}
else
{
echo"<center><h4>Erreur</h4></center>";
};
};
echo"<table width='0%' cellpadding='5' cellspacing='0' border='0' align='center' bgcolor='#CCCCCC'>
<form name='ajouter' action='annuaire.php?task=1' method='post'>
<tr>
<td colspan='2' align='center'><h2>Ajouter une entrée</h2></td>
</tr>
<tr>
<td align='right'>Nom</td>
<td><input type='text' name='nom'></td>
</tr>
<tr>
<td align='right'>Prénom</td>
<td><input type='text' name='prenom'></td>
</tr>
<tr>
<td align='right'>Tel</td>
<td><input type='text' name='tel'></td>
</tr>
<tr>
<td> </td>
<td><input type='submit' name='op1' value='Ajouter'></td>
</tr>
</form>
</table>";
break;
case 2: // recherche dans la base
if (!empty($_POST['op2']))
{
$query="SELECT * FROM annuaire WHERE an_id IS NOT NULL";
if ($nom)
{
$query.=" AND an_nom LIKE '$nom%'";
};
if ($prenom)
{
$query.=" AND an_prenom LIKE '$prenom%'";
};
if ($tel)
{
$query.=" AND an_tel LIKE '%$tel%'";
};
$query.=" ORDER BY an_nom";
$res=mysql_query($query);
echo"<table width='0%' cellpadding='5' cellspacing='1' border='0' align='center'>";
echo"<tr><td bgcolor='#CCCCCC' align='center'><b>Id</b></td><td bgcolor='#CCCCCC' align='center'><b>Nom</b></td><td bgcolor='#CCCCCC' align='center'><b>Prénom</b></td><td bgcolor='#CCCCCC' align='center'><b>N°</b></td><td> </td><td> </td></tr>";
while($val=mysql_fetch_array($res,1))
{
$id = $val['an_id'];
$nom = $val['an_nom'];
$prenom = $val['an_prenom'];
$tel = $val['an_tel'];
echo"<tr><td bgcolor='#CCCCCC'>".$id."</td><td bgcolor='#CCCCCC'>".$nom."</td><td bgcolor='#CCCCCC'>".$prenom."</td><td bgcolor='#CCCCCC'>".$tel."</td><td bgcolor='#CCCCCC'><A HREF='annuaire.php?task=4&id=$id'>modifier</A></td><td bgcolor='#CCCCCC'><A HREF='annuaire.php?task=3&id=$id'>effacer</A></td></tr>";
};
echo"</table><br>";
};
echo"<table width='0%' cellpadding='5' cellspacing='0' border='0' align='center' bgcolor='#CCCCCC'>
<form name='recherche' action='annuaire.php?task=2' method='post'>
<tr>
<td colspan='2' align='center'><h2>Rechercher</h2></td>
</tr>
<tr>
<td align='right'>Nom</td>
<td><input type='text' name='nom'></td>
</tr>
<tr>
<td align='right'>Prénom</td>
<td><input type='text' name='prenom'></td>
</tr>
<tr>
<td align='right'>Tel</td>
<td><input type='text' name='tel'></td>
</tr>
<tr>
<td> </td>
<td><input type='submit' name='op2' value='Rechercher'></td>
</tr>
</form>
</table>";
break;
case 3: // test de suppression des resultats
echo"<table align='center'><tr><td>Vous êtes sûr ?<li><A HREF='annuaire.php?task=5&id=$id'>OUI<A/></li><li><A HREF='javascript:history.back();'>Annuler<A/></li></td></tr></table>";
break;
case 4: // modifier des resultats
if (!empty($_POST['op4']))
{
$query="UPDATE annuaire SET an_nom='$nom', an_prenom='$prenom', an_tel='$tel' WHERE an_id=$id";
$res=mysql_query($query);
if ($res)
{
echo"<center><h4>Entrée modifiée</h4></center>";
}
else
{
echo"<center><h4>Erreur</h4></center>";
};
};
echo"<table width='0%' cellpadding='5' cellspacing='0' border='0' align='center' bgcolor='#CCCCCC'>
<form name='modifier' action='annuaire.php?task=4' method='post'>
<tr>
<td colspan='2' align='center'><h2>Modifier</h2></td>
</tr>
<tr>
<td align='right'>Id</td>
<td>$id</td>
</tr>
<tr>
<td align='right'>Nom</td>
<td><input type='text' name='nom' value=$nom></td>
</tr>
<tr>
<td align='right'>Prénom</td>
<td><input type='text' name='prenom' value=$prenom></td>
</tr>
<tr>
<td align='right'>Tel</td>
<td><input type='text' name='tel' value=$tel></td>
</tr>
<tr>
<td> </td>
<td>
<input type='hidden' name='id' value='$id'>
<input type='submit' name='op4' value='Modifier'></td>
</tr>
</form>
</table>";
break;
case 5:
$query="DELETE FROM $table WHERE an_id = '$id'";
$res=mysql_query($query);
if ($res)
{
echo"<center><h4>Entrée supprimée</h4></center>";
}
else
{
echo"<center><h4>Erreur</h4></center>";
};
break;
default:
echo "<center><h3>HELLO ;o)</h3></center>";
break;
}
}
//mysql_close;
?>
</font></body></html>
Pfiou, c'est vraiment pas clair ton code... T'as sans doute oublié l'input avec l'id dans le formulaire qui te mène à cette erreur... Je sais pas t'en dire plus sans décortiquer ligne par ligne et j'avoue n'avoir ni le temps ni l'envie...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Tutoriel complet MySQL !
Tutoriel complet MySQL !