recherche de données d'une bd via un formulaire

recherche de données d'une bd via un formulaire - PHP - Programmation

Marsh Posté le 02-08-2005 à 11:22:26    

Bonjour, je reste bloqué depuis quelques jours sur un problème sur un formulaire en php/mysql. je dispose d'une table « employe » avec comme champs « Num_Emp », « Nom_Emp », « Prenom_Emp » et « Adresse_Emp », et d’une table client avec « Num_Clt », « Nom_Clt », « Prenom_Clt », « Adresse_Clt », ces tables étant déjà remplies de nombreux champs,dont certains ayant le même nom. Le but de mon formulaire est d'intégrer une fonction de recherche des employés et des clients en fonction du champ "nom" du formulaire, même rempli partiellement, afin d’enregistrer des rendez-vous. Ainsi, en tapant par exemple "Mar", je voudrais remplir le formulaire avec les informations du 1er "Nom_Emp" dans la base de données commençant par "Mar", et par la suite à l'aide d'un bouton "suivant", remplir le formulaire avec l'enregistrement suivant, et répéter ensuite l’opération avec le client.
Pour le moment j'ai réussi à récupérer les informations concernant l’employé, mais la fonction de recherche du bénéficiaire ne récupère aucune donnée. Voici une partie de mon code (dsl c'est assez barbare!) :  
 

Code :
  1. <?
  2.   if(!empty($_GET))
  3.   {
  4.     if((isset($_GET['Rechercher_Emp'])) || (isset($_GET['Precedent_Emp'])) || (isset($_GET['Suivant_Emp'])))
  5.     {
  6.       if(isset($_GET['Nom_Emp'])) $search_Emp = $_GET['Nom_Emp'];
  7.       // si limit n'existe pas on l'initialise à zéro  
  8.       if (!isset($limit_Emp)) $limit_Emp = 0;
  9.       if(((isset($_GET['Nom_Emp'])) && (!empty($_GET['Nom_Emp']))) || ((isset($search_Emp)) && (isset($search_Emp))))
  10.       {
  11.         // requête SQL qui compte le nombre total d'enregistrements correspondants à la recherche
  12.         $sql = "SELECT * FROM employe where (Nom_Emp like \"$search_Emp%\" )";
  13.         $id_res = mysql_query($sql);
  14.         $total_Emp = mysql_num_rows($id_res);
  15.         // si on a récupéré un resultat
  16.         if($total_Emp)
  17.         {
  18.           $sql = "select * from employe where (Nom_Emp like \"$search_Emp%\" ) LIMIT $limit_Emp,1";
  19.           $id_res = mysql_query($sql);
  20.           $ligne = mysql_fetch_row($id_res);
  21.           echo'    <h1 align="center">Saisie des rendez-vous</h1>'."\n";
  22.           echo'    <form name="form1" method="get" action="'.$_SERVER['PHP_SELF'].'">'."\n";
  23.           echo'      <table border="1" cellspacing="0" align="center">'."\n";
  24.           echo'        <tr><td>Client : </td>'."\n";
  25.           echo'          <td><input type="text" name="Nom_Clt" id="Nom_Clt" size="30" maxlength="30" value="'.$ligne[1].'"></td>'."\n";
  26.           echo'          <td colspan="2"><input type="submit" name="Rechercher_Clt" value="Rechercher"></td>'."\n";
  27.           $nextlimit_Emp = $limit_Emp + 1;
  28.           $previouslimit_Emp = $limit_Emp - 1;
  29.           if($limit_Emp != 0)
  30.           {
  31.             echo  '        <form action="'.$_SERVER['PHP_SELF'].'" method="get">'."\n";
  32.             echo  '          <td><input type="hidden" value="'.$search_Emp.'" name="search_Emp">'."\n";
  33.             echo  '            <input type="hidden" value="'.$search_Emp.'" name="Nom_Emp">'."\n";
  34.             echo  '            <input type="hidden" value="'.$previouslimit_Emp.'" name="limit_Emp">'."\n";
  35.             echo  '            <input type="submit" name="Precedent_Emp" value="Precedent"></td></form>'."\n";
  36.           }
  37.           if($nextlimit_Emp < $total_Emp)
  38.           {
  39.             echo  '        <form action="'.$_SERVER['PHP_SELF'].'" method="get">'."\n";
  40.             echo  '          <td><input type="hidden" value="'.$search_Emp.'" name="search_Emp">'."\n";
  41.             echo  '            <input type="hidden" value="'.$search_Emp.'" name="Nom_Emp">'."\n";
  42.             echo  '            <input type="hidden" value="'.$nextlimit_Emp.'" name="limit_Emp">'."\n";
  43.             echo  '            <input type="submit" name="Suivant_Emp" value="Suivant"></td></form>'."\n";
  44.           }
  45.           echo'        </tr>'."\n";
  46.           echo'        <tr><td>Pr&eacute;nom : </td>'."\n";
  47.           echo'          <td><input type="text" name="Prenom_Emp" id="Prenom_Emp" size="20" maxlength="20" value="'.$ligne[2].'"></td></tr>'."\n";
  48.           echo'        <tr><td>Adresse : </td>'."\n";
  49.           echo'          <td colspan="3"><textarea name="Adresse_Emp" id="Adresse_Emp" cols="80" rows="2">'.$ligne[3].'</textarea></td></tr>'."\n";
  50.           echo'        <tr><td>B&eacute;n&eacute;ficiaire : </td>'."\n";
  51.           echo'          <td><input type="text" name="Nom_Clt" id="Nom_Clt" size="30" maxlenght="30">'."\n";
  52.           echo'          <td colspan="2"><input type="submit" name="Rechercher_Clt" value="Rechercher"></td></tr>'."\n";
  53.           echo'      </table>'."\n";
  54.           echo'    </form>'."\n";
  55.         }
  56.       }elseif((isset($_GET['Rechercher_Clt'])) || (isset($_GET['Precedent_Clt'])) || (isset($_GET['Suivant_Clt'])))
  57.       {
  58.         if(isset($_GET['Nom_Clt'])) $search_Clt = $_GET['Nom_Clt'];
  59.         // si limit n'existe pas on l'initialise à zéro  
  60.         if (!isset($limit_Clt)) $limit_Clt = 0;
  61.         if(((isset($_GET['Nom_Clt'])) && (!empty($_GET['Nom_Clt']))) || ((isset($search_Clt)) && (isset($search_Clt))))
  62.         {
  63.           // requête SQL qui compte le nombre total d'enregistrements correspondants à la recherche
  64.           $sql = "SELECT * FROM client where (Nom_Clt like \"$search_Clt%\" )";
  65.           $id_res = mysql_query($sql);
  66.           $total_Clt = mysql_num_rows($id_res);
  67.           // si on a récupéré un resultat
  68.           if($total_Clt)
  69.           {
  70.             $sql = "select * from client where (Nom_Clt like \"$search_Clt%\" ) LIMIT $limit_Clt,1";
  71.             id_res = mysql_query($sql);
  72.             $ligne = mysql_fetch_row($id_res);
  73.             echo'    <form name="form1" method="get" action="'.$_SERVER['PHP_SELF'].'">'."\n";
  74.             echo'      <table border="1" cellspacing="0" align="center">'."\n";     if(isset($_GET['Nom_Emp'],$_GET['Prenom_Emp'],$_GET['Adresse_Emp']))
  75.             {
  76.               echo'        <tr><td>Employ&eacute; : </td>'."\n";
  77.               echo'          <td><input type="text" name="Nom_Emp" id="Nom_Emp" size="30" maxlenght="30" value="'.$_GET['Nom_Emp'].'">'."\n";
  78.               echo'          <td colspan="2"><input type="submit" name="Rechercher_Emp" value="Rechercher"></td></tr>'."\n";
  79.               echo'        <tr><td>Pr&eacute;nom : </td>'."\n";
  80.               echo'          <td><input type="text" name="Prenom_Emp" id="Prenom_Emp" size="20" maxlength="20" value="'.$_GET['Prenom_Emp'].'"></td></tr>'."\n";
  81.               echo'        <tr><td>Adresse : </td>'."\n";
  82.               <td colspan="3"><textarea name="Adresse_Emp" id="Adresse_Emp" cols="80" rows="2">'.$_GET['Adresse_Emp'].'</textarea></td></tr>'."\n";
  83.             }
  84.             echo'        <tr><td>B&eacute;n&eacute;ficiaire : </td>'."\n";
  85.             echo'          <td><input type="text" name="Nom_Clt" id="Nom_Clt" size="30" maxlength="30" value="'.$ligne[1].'"></td>'."\n";
  86.             echo'          <td colspan="2"><input type="submit" name="Rechercher_Clt" value="Rechercher"></td>'."\n";
  87.             $nextlimit_Clt = $limit_Clt + 1;
  88.             $previouslimit_Clt = $limit_Clt - 1;
  89.             if($limit_Clt != 0)
  90.             {
  91.               echo  '        <form action="'.$_SERVER['PHP_SELF'].'" method="get">'."\n";
  92.               echo  '          <td><input type="hidden" value="'.$search_Clt.'" name="search_Clt">'."\n";
  93.               echo  '            <input type="hidden" value="'.$search_Clt.'" name="Nom_Clt">'."\n";
  94.               echo  '            <input type="hidden" value="'.$previouslimit_Clt.'" name="limit_Clt">'."\n";
  95.               echo  '            <input type="submit" name="Precedent_Clt" value="Precedent"></td></form>'."\n";
  96.             }
  97.             if($nextlimit_Clt < $total_Clt)
  98.             {
  99.               echo  '     <form action="'.$_SERVER['PHP_SELF'].'" method="get">'."\n";
  100.               echo  '          <td><input type="hidden" value="'.$search_Clt.'" name="search_Clt">'."\n";
  101.               echo  '            <input type="hidden" value="'.$search_Clt.'" name="Nom_Clt">'."\n";
  102.               echo  '            <input type="hidden" value="'.$nextlimit_Clt.'" name="limit_Clt">'."\n";
  103.               echo  '            <input type="submit" name="Suivant_Clt" value="Suivant"></td></form>'."\n";
  104.             }
  105.             echo'        </tr>'."\n";
  106.             echo'        <tr><td>Pr&eacute;nom : </td>'."\n";
  107.             echo'          <td><input type="text" name="Prenom_Clt" id="Prenom_Clt" size="20" maxlength="20"></td></tr>'."\n";
  108.             echo'        <tr><td>Adresse : </td>'."\n";
  109.             echo'          <td colspan="3"><textarea name="Adresse_Clt" id="Adresse_Clt" cols="80" rows="2">'.$ligne[3].'</textarea></td></tr>'."\n";
  110.             echo'        <tr><td>Date : </td>'."\n";
  111.             echo'          <td colspan="3"><input type="text" name="Jour_Rdv" id="Jour_Rdv" size="2" maxlength="2"> /'."\n";
  112.             echo'            <input type="text" name="Mois_Rdv" id="Mois_Rdv" size="2" maxlength="2"> /'."\n";
  113.             echo'            <input type="text" name="Annee_Rdv" id="Annee_Rdv" size="4" maxlength="4"></td></tr>'."\n";
  114.             echo'        <tr><td colspan="2">&nbsp;</td>'."\n";
  115.             echo'          <td><input type="submit" name="Valider" value="Valider"></td>'."\n";
  116.             echo'          <td><input type="submit" name="Reinitialiser" value="Reinitialiser"></td></tr>'."\n";
  117.             echo'      </table>'."\n";
  118.             echo'    </form>'."\n";
  119.           }
  120.         }
  121.       }elseif(isset($_GET['Valider']))
  122.       {   if(isset($_GET['Nom_Clt'],$_GET['$Nom_Emp'],$_GET['Jour_Rdv'],$_GET['Mois_Rdv'],$_GET['Annee_Rdv']))
  123.         {
  124.           //enregistrement dans la base de données du rendez-vous
  125.         }
  126.       }
  127.     }else{
  128.       echo'    <h1 align="center">Saisie des rendez-vous</h1>'."\n";
  129.       echo'    <form name="form1" method="get" action="'.$_SERVER['PHP_SELF'].'">'."\n";
  130.       echo'      <table border="1" cellspacing="0" align="center">'."\n";
  131.       echo'        <tr><td>Employ&eacute; : </td>'."\n";
  132.       echo'          <td><input type="text" name="Nom_Emp" id="Nom_Emp" size="30" maxlength="30"></td>'."\n";
  133.       echo'          <td colspan="2"><input type="submit" name="Rechercher_Emp" id="Rechercher_Emp" value="Rechercher"></td></tr>'."\n";
  134.       echo'      </table>'."\n";
  135.       echo'    </form>'."\n";
  136.     }
  137. ?>


 
J’ai remarqué que la récupération des données  par le 2ème bouton « rechercher » fonctionnait seulement si je ne gérais pas les boutons « précédent » et « suivant », mais je ne comprends pas pourquoi cet ajout perturbe tout. J’ai tenté pas mal de choses comme retirer les balises form avant chaque bouton, mais les variables « limit » n’étaient pas correctement incrémentées ou décrémentées. Si vous avez déjà traité ce genre de problème ou avez des idées, n'hésitez pas SVP! Merci d'avance! :hello:


Message édité par chococolapin le 02-08-2005 à 11:23:34
Reply

Marsh Posté le 02-08-2005 à 11:22:26   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed