Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1588 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1167678
chococolap​in
Posté le 02-08-2005 à 11:22:26  profilanswer
 

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
mood
Publicité
Posté le 02-08-2005 à 11:22:26  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
plusieur formulaireCréer un mini formulaire qui listerait automatiquement !
Recherche code html pour fondu ???Problème formulaire mail et bouton radio
UPDATE d'une table à partir d'un formulaire[résolu] Générer aléatoirement des données
Générer aléatoirement des donnéesverifier formulaire existe
Creation d'un tableau avec données issues de BDD AccessGridView (dataGrid) et affichage des données
Plus de sujets relatifs à : recherche de données d'une bd via un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR