IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Réaliser une recherche pour son site [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Réaliser une recherche pour son site
    Essaye de faire une recherche d'une variable dans mon champ code_agent via la table Agent... voici le code source, avez vous une idée des causes ou rien ne s'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    function search()
              {
       $champ=$_POST['rechercherpar'];
       $mot=$_POST['mot_cle'];
    $resultat=mysql_query("select * from Agent where code_agent='$mot'");
    $ligne=mysql_fetch_array($resultat);
    $nb=mysql_num_rows($resultat);
    $i=0;
           while($i<$nb)
              {
       $ca=$ligne['code_agent'];
       //$cm=$ligne['code_mvs'];
       //$vi=$ligne['ville'];
     echo '.$ca.';
    $i=$i+1;
              }
              }
    search();
    ?>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action="search.php" method="post">
             Rechercher par <select name="rechercherpar">
                                      <option>Nom</option>
                                      <option>Matricule</option>
                                  </select>
              Mot clé<input type="text" name="mot_cle">
                         <input type="submit" value="Rechercher">

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - on présente son code proprement
    2 - on fait simple
    3 - on ne met pas dans une requête une donnée venant de l'utilisateur directement
    4 - on ne met pas une variable dans des apostrophes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function search($mot)    {
       $resultat=mysql_query("select * from Agent where code_agent='" . mysql_real_escape_string($mot). '"');
       while ($ligne=mysql_fetch_assoc($resultat)) {
              echo $ligne['code_agent'] . '<br/>':
       }
    }
     
    search($_POST['mot_cle']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    5 - On n'utilise pas l'extension mysql_* mais mysqli_* ou PDO.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    J'ai modelé ton code source sabotage et je n'obtiens pas de réponse, après avoir épurer certaines de mes erreurs dans l'ancien code et des variables qui ne servaient pas tout compte fait..

    Voici le code actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
     
    include('mysqli_connect.php');     // Inclure le fichier de connexion à la base de donnée
    include('search.html');            // Inclure le formulaire html
    function search($mot)
              {
    //   $champ=$_POST['rechercherpar'];
       $mot=$_POST['mot_cle'];          // Recherche du mot cle
    $resultat=mysql_query("select * from test where first_name='".mysql_real_escape_string($mot).'"'); // Requête SQL
    $ligne=mysql_fetch_array($resultat);                  // Exécute la requête
    //$nb=mysql_num_rows($resultat);
    //$i=0;
     
    while ($ligne=mysql_fetch_assoc($resultat)) {
              echo $ligne['first_name'] . '<br/>'; // Affichage
       }
    }
     
    search($_POST['mot_cle']);
    ?>
    en local j'obtiens ces erreurs suivantes

    Nom : Capture.PNG
Affichages : 119
Taille : 145,3 Ko

    Je continuerais de chercher ce soir, auriez vous des idées là dessus ?

    Cordialement,

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Aujourd'hui, 03h55
    Je continuerais de chercher ce soir
    Ca va, t'es pas du genre pressé en fait !

    La première erreur est une autre façon de dire
    Citation Envoyé par Bovino
    On n'utilise pas l'extension mysql_* mais mysqli_* ou PDO.
    Pour les autres erreurs, ben c'est simple, on t'explique que la fonction attend comme paramètre une ressource et que toi, tu lui a passé un booléen.
    Donc si tu ne sais pas pourquoi, direction la doc pour savoir dans quelles conditions mysql_query() renvoie un booléen avec une requête SELECT.
    Loesque tu auras compris que ta requête est mal formée, tu pourras regarder ce que tu as écrit et commencer à te demander pourquoi dans ta requête, tu encadres ton champ dans le WHERE avec un ' au début et un " à la fin...

    En bref, tu peux aussi déboguer toi-même...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Après avoir lu des docs et vos docs j'ai effectivement réaliser autrement pour la recherche dans un site... désolé du retard je développe le weekend et en soirée quand j'ai le temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    	include('header.html');
    echo '
    <!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
    	<html>
    	  <head>
    	    <meta  http-equiv="Content-Type" content="text/html;  charset=iso-8859-1">
    	    <title>Recherche agence</title>
    	  </head>
    	  <p><body>
    		<fieldset>
    	    <LEGEND>Recherche détails agence</LEGEND>
    	    <p>Vous devez rechercher par agence ou code MVS</p>
    	    <form  method="post" action="search.php?go"  id="searchform">
    	      <input  type="text" name="name">
    	      <input  type="submit" name="submit" value="Rechercher">
    	    </form>
    		</fieldset>
    	  </body>
    	</html>
    	</p>
    ';
     
    	  if(isset($_POST['submit'])){
    	  if(isset($_GET['go'])){
    	  if(preg_match("/^[  a-zA-Z]+/", $_POST['name'])){
    	  $name=$_POST['name'];
    	  //Connexion au serveur de base de donnée
    	  $db=mysql_connect  ("serveur_bdd", "utilisateur_bdd",  "mot_de_passe") or die ('I cannot connect to the database  because: ' . mysql_error());
               //Selectionner la base de donnée à utiliser
               $mydb=mysql_select_db("nom_bdd");
    	  //Requête de la base de donnée
    	  $sql="SELECT  agent_id, agence, code_mvs FROM Agent WHERE agence LIKE '%" . $name .  "%' OR code_mvs LIKE '%" . $name ."%'";
    	  //Exécuter la requête mysql_query
    	  $result=mysql_query($sql);
    	  //Création de la boucle While
    	  while($row=mysql_fetch_array($result)){
    	          $agence  =$row['agence'];
    	          $code_mvs=$row['code_mvs'];
    	          $agent_id=$row['agent_id'];
    	  //Afficher le résultat
    	  echo "<ul>\n";
    	  echo "<li>" . "<a  href=\"all_user.php?id=$agent_id\">"   .$agence . " " . $code_mvs .  "</a></li>\n";
    	  echo "</ul>";
    	  }
    	  }
    	  else{
    	  echo  "<p>Please enter a search query</p>";
    	  }
    	  }
    	  }
    	?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Creer une application pour son site web
    Par Albat_r dans le forum Android
    Réponses: 4
    Dernier message: 02/07/2014, 14h47
  2. Réaliser une galerie pour mon site
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/01/2014, 10h03
  3. [2010] Réaliser une bannière pour site internet
    Par lilou09200 dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 01/10/2011, 20h53
  4. Recherche player Mp3 pour son site web
    Par link.80 dans le forum Audio
    Réponses: 0
    Dernier message: 15/11/2008, 21h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo