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 :

Requête mysql qui permet de chercher dans une base de données complète.


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Requête mysql qui permet de chercher dans une base de données complète.
    Tout d'abord bien le bonjour à tout le monde,

    J'adore venir poster chez developpez.com, parcequ'on est toujours servi comme des rois ;-)

    Je vous explique ma situation. Je ne suis pas un maître d'SQL et après de longues recherches, je me permet de venir vous embêter. J'ai une base de données "webinv_dev" dans laquelle ce trouvent 12 tables "categorie, ecole, emultimedia, enetwork, epc, eperipherique, eprinter, eserver, etel, etiquette, role, user" mon but est de créer une requête mysql qui va me permettre de rechercher dans toute la base un champs de texte. J'ai un formulaire dont je récupère la valeur d'un champs que je mets dans une variable php.

    Alors j'ai trouvé plusieurs possibilités, soit avec des OR en recherchant une chaine de caractère avec des likes, ou des JOIN mais là ça sort de mes compétences. Est-ce que quelqu'un peut me sauver la vie je lui en serais très reconnaissant.

    Milles merci et meilleures salutations à tout le monde.

    Cornaz Gabriel

  2. #2
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Perso faire une requête de ce genre consomerais plus que beaucoup de ressource.
    Rechercher dans 12 tables avec chacun ces champ un élément jsais pas si c'est réellement utile.
    Vaux mieux pour à mon avis que tu fasses genre un menu déroulant contenant le type de rechercher (donc dans quel table on va chercher) et puis aprés tu fait ta rehcerche normal dans la table séléctionné.
    Enfin c'est un avis^^

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    Je suis d'accord avec Gaara-Manga, il faut peut-être mâché un peu le travail car si tes tables sont conséquentes, le serveur MySQL va vraiment pédaler dur ! Imagine 1000 personnes exécutant ta requête simultanément !

    Sinon le truc serait du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table1, table2, table3, tableX WHERE champs1 LIKE '%$recherche%' OR champs2 LIKE '%$recherche%'
    Je suis pas certain du truc, pour des JOIN il faudrait que l'on en sache un peu plus sur la relation de tes tables...

    Nico

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    Alors pour la surcharge c'est pas trop un problème car c'est seulement l'administrateur globale qui a le droit de le faire et enfait je me peux me limiter à 7 tables. Par contre, toutes les tables n'ont pas les mêmes champs est-ce que la requête que tu m'as donner fonctionnera quand même ?

    Merci les gars.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    la requete tel quel ne fonctionnera pas !

    il faudrait faire un truc de ce style (les champs sont des exemples...)

    SELECT
    champ1.maTable1, champ2.maTable1
    champX.maTableX, ...
    FROM
    maTable1, maTable2, maTable3, maTableX
    WHERE
    champ1.maTable1 LIKE '%$recherche%' OR champ2.maTable1 LIKE '%$recherche%' OR champX.maTableX LIKE '%$recherche%' ORDER BY ...

    c'est un peu bourrin mais au moins ça fonctionnera !

Discussions similaires

  1. [MySQL] [MYSQL] IHM de menus déroulant pour chercher dans une Base de donnée
    Par passebas dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/06/2012, 12h43
  2. Chercher dans une base de données MySQL
    Par karamovic dans le forum Android
    Réponses: 6
    Dernier message: 11/05/2012, 09h28
  3. requête sql qui joint deux champs dans une seule chaine
    Par marwacht dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/05/2011, 10h29
  4. [Joomla!] Composant Contact qui stocke les messages dans une base de données
    Par Alcius dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 20/07/2009, 11h21
  5. [MySQL] Enregistrement d'une requête SQL dans une base de données MySQL
    Par glsn dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/07/2008, 13h06

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