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 :

Script PHP de Formulaire de recherche simple dans BDD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Script PHP de Formulaire de recherche simple dans BDD
    Bonjour à toutes et tous,

    Bonne année à tout le monde !

    Pour être clair dès le début, je suis un vieux monsieur et je ne sais pas coder.
    Je cherche un script "clef en main" de moteur de recherche simple avec affichage des résultats.
    Ma BDD contient une table "utilisateur" avec nom, prénom, mail, date de naissance, etc,etc..
    Je souhaiterais que dans la barre de recherche, on tape un nom et qu'ensuite s'affiche sous forme de tableau quelques autres valeurs sélectionnées correspondant au nom trouvé
    Quelqu'un peut-il m'aider à trouver ça ?
    J'ai cherché des heures sur le net sans rien trouver. HELP PLEASE !
    (Je saurais sans doute adapter le script à ma base de données)

    Merci beaucoup d'avance

    Piluche

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    avec une base de donnée Mysql nommée "test" et une table nommée "recherche", ce code est fonctionnel (testé).

    index.php
    Code php : 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
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8"/>
    	<title>Recherche</title>
    	<style>
    		table{width:100%;border-collapse:collapse}
    		table tr,table th,table td{border:1px solid black;}
    		table tr td{text-align:center;padding:1em;}
    	</style>
    </head>
    <body>
    	<?php include('connection_database.php');?>
    	<form method='post'>
    		<input type='text' placeholder='recherche' name="recherche_valeur"/>
    		<input type='submit' value="Rechercher"/>
    	</form>
    	<table>
    		<thead>
    			<tr><th>Nom</th><th>Prenom</th><th>Email</th><th>Date_naissance</th></tr>
    		</thead>
    		<tbody>
    			<?php
    				$sql='select * from recherche';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where nom like :nom';
    					$params[':nom']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$connect->prepare($sql);
    				$resultats->execute($params);
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    					?>
    						<tr><td><?=$d['nom']?></td><td><?=$d['prenom']?></td><td><?=$d['mail']?></td><td><?=$d['date_naissance']?></td></tr>
    					<?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=4>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
    		</tbody>
    	</table>
    </body>
    </html>

    connection_database.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
     
    //connection_database.php
     
    $connect = new PDO('mysql:host=localhost;dbname=test', 'root', '',[
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
     
    ?>

    Remarque :
    L'utilisation de la fonction addcslashes($_POST['recherche_valeur'],'_') permet d'échapper le caractère spécial "_" dans la chaîne envoyée.
    Si tu l'enlèves et puis tu tape "_" en premier dans la zone de texte et tu appuie sur le bouton recherche, le "_" ne sera pas pris en considération.

    j'espère que ça t'aidera.

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Merci Toufik83,

    Je ne suis pas un "pro" du codage - plutot un "bleu" - et je ne sais pas trop comment faire fonctionner ça
    Quelles étapes successives ?

    Ma base s'appelle tgeparis et la table Joueur
    Dans cette table, je veux faire remonter les valeurs des colonnes NOM, Prénom, Licence et Origine

    Tu peux m'en dire un peu plus ?
    Merci d'avance

    Piluche

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    est ce que c'est une base de donnée Mysql ou autre ?

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Oui, c'est une base Mysql 5.5 installée chez mon hébergeur et sur laquelle s'appuie des scripts du site en Php
    Je souhaiterais intégrer ce moteur sur mon site ( dans mon theme Wordpress) pour qu'il cherche dans cette base de données

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Tout d'abord il faut mettre les deux fichiers sur ton serveur, et dans ton thème Wordpress tu mets un lien qui redirige l'utilisateur vers la page de recherche (celle que je t'ai envoyé).

    Il faut aussi mettre les bons identifiants pour te connecter à ta base, le nom de domaine et le nom la base de donnée + le nom d'utilisateur + le mot de passe.

    Pour faire ça remplace "localhost" par "ton nom de domaine", le mot "test" par "tgeparis" et "root" par le nom d'utilisateur que ton hébergeur te l'a fourni et le mot de passe juste après.

    moi je n'ai pas de mot de passe Mysql c'est pour ça que j'ai rien mis après "root".
    en gros ça donne ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    try{
       $connect = new PDO('mysql:host=Nom_de_domaine;dbname=tgeparis', 'Nom_utilisateur', 'Mot_de_passe_utilisateur_mysql',[
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
      echo 'Connexion effectuée avec succès';//s'assurer que la connexion est OK
    }catch(Exception $e){
    	echo "Erreur de connexion à la base :".$e->getMessage();//au cas ou il y a une erreur de Connexion, ce message s'affichera
    }

    Modifie aussi le nom de la table "recherche" en "Joueur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql='select * from Joueur';
    Concernant les noms des colonnes, tout est ici
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><?=$d['nom']?></td><td><?=$d['prenom']?></td><td><?=$d['mail']?></td><td><?=$d['date_naissance']?></td></tr>
    si tu veux récupérer par exemple le champ Licence, tu n'as qu'a mettre <?=$d['Licence']?> dans un td.

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

Discussions similaires

  1. [MySQL-5.6] Script Formulaire de recherche simple dans BDD
    Par piluche dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/01/2019, 11h17
  2. [AC-2007] Recherche simple dans un formulaire
    Par luminium dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2010, 10h24
  3. script php pour formulaire
    Par ammi2006 dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2006, 00h48
  4. Dans formulaire de recherche avancée dans Access
    Par LeSuisse1 dans le forum Access
    Réponses: 1
    Dernier message: 24/04/2006, 15h59

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