Partage
  • Partager sur Facebook
  • Partager sur Twitter

PHP annuaire téléphonique

    17 mars 2011 à 13:59:10

    Bonjour,

    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>&nbsp;</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>&nbsp;</td><td>&nbsp;</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>&nbsp;</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>&nbsp;</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>
    
    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2011 à 14:14:31

      Effectivement je viens de le rajouter ligne 29, mais les données liées à l'id ne sont pas rapatriées !!!

      Je n'arrive pas à récupérer la valeur $id entre case2 et case4
      • Partager sur Facebook
      • Partager sur Twitter
        17 mars 2011 à 14:17:44

        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...
        • Partager sur Facebook
        • Partager sur Twitter

        PHP annuaire téléphonique

        × 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.
        • Editeur
        • Markdown