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

Langage PHP Discussion :

Moteur de recherche PHP/MySQL


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut Moteur de recherche PHP/MySQL
    Bonjour.
    Je suis actuellement en train de réfléchir à comment réaliser un moteur de recherche en PHP/MySQL.
    En plus détaillé, cela donne :
    L'utilisateur entre une recherche du type : "Nom Prénom" (dans un champ de texte).
    la recherche "Nom Prénom" s'effectuerait sur deux champs : "nom_user" et "prenom_user" de la table "user".

    Une méthode à proposer ? Des conseils ? Je suis preneur !

    Merci à vous !
    A la prochaine

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ mon conseil serait que ce message soit déplacé dans le bon forum (le forum php !)
    2/ A priori, c'est une recherche simple. Quelle est la difficulté ?

    La méthode est simple :
    1/ un formulaire (2 champs input, un bouton submit)
    2/ traitement
    - récupération des valeurs
    - requête en BdD par comparaison des valeurs des 2 champs
    3/ affichage des résultats

    What Else ?
    Dernière modification par Invité ; 04/08/2011 à 23h01.

  3. #3
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    N'oublies d'utiliser des indexes sur les deux champs dans ta BDD.

    Pour plus d'infos sur les indexes et la recherche full texte tu peux jetter un oeil sur le tutoriel MYSQL et la recherche textuelle. Le tuto se base sur MySQL mais quasiment le même principe avec les autres SGBD.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    J'ai un seul champ input, dont l'utilisateur peut saisir "Nom Prénom" ou "Prénom Nom" ou seulement le "Nom" ....etc.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par outmane16 Voir le message
    J'ai un seul champ input
    Ca ne change que la façon de récupérer les "nom" et "prenom".
    Pas la méthode de recherche.

  6. #6
    Membre averti Avatar de hisy
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 377
    Points : 353
    Points
    353
    Par défaut
    Salut,

    Tu peux faire une recheche sur hisyRecherche dans Google, j'avais publié un jour une classe de recherche avec coloration des mots trouvés sans prétention mais ça marche.

    Tu peux l'utiliser en mode ET ou OU. Dans ton cas le mode ET te permet de trouver des chaines de type "nom prénom" ou "prénom nom" ...

    Si tu as des questions ... alimente ce post ou écrits moi en MP.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Merci pour vos réponse, je viens de créer un moteur de recherche par mots clés.
    J'ai découpé ma chaine avec la fonction explode() afin de renvoyer un tableau de mots (mots clés), ensuite j'ai fait une boucle qui permet d'ajouter ses mots clés dans la requete SQL, en utilisant les "OR" et les "AND" et le critère de sélection "LIKE".
    J'ai utilisé aussi les fonctions de sécurité pour éviter les problèmes avec les recherches qui contiennent des caractères spéciaux.

  8. #8
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 799
    Points : 7 038
    Points
    7 038
    Par défaut
    et si je peut e permettre d'ajouter quelque chose, i lserait bien que tu utilises des requêtes sql préparées ou les fonctions comme mysql_real_escape_string() ça t'évitera des soucis liée aux sql Injections et autres

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    oui j'ai utiisé la fonction mysql_real_escape_string() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $recherche = mysql_real_escape_string(htmlspecialchars(trim($_POST['input_chercher'])));

  10. #10
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    euh tu n'as jetter un oeil sur les index ???

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Je travaille avec le moteur InnoDB de MySQL, et je pense que ce moteur n'accepte pas la recherche textuelle (FULL TEXT) ?

  12. #12
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    euh je parle des INDEX et non de FULLTEXT... http://dev.mysql.com/doc/innodb-plug...-overview.html

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Bonjour,
    j'ai ajouté un index dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INDEX ind_recherche ( prenom_user(10), nom_user(10) )
    mais je ne sais pas comment l'utiliser dans la requete SQL

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

Discussions similaires

  1. [MySQL] Problème moteur de recherche php avec base donnée Mysql
    Par hotwheals dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 28/06/2011, 09h06
  2. Moteur de recherche => PHP ou XML ?
    Par caledonien dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2007, 09h58
  3. [MySQL] Moteur de recherche PHP
    Par bressan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/10/2006, 12h27
  4. [SQL] Classement et moteur de recherche PHP
    Par fabrice78 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 10/07/2006, 11h21
  5. [SGBD] Recherche PHP+MySQL
    Par gaucher dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2006, 14h43

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