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 :

Recherche sur tous les champs


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Recherche sur tous les champs
    Bonjour,
    Je voudrais faire une recherche dans une table qui a 30 champs et 1000 lignes.
    Le problème c'est que je dois faire la recherche sur la table en entier et non seulement sur un ou 2 champs. J'ai bien pensé au LIKE mais ça fait 30 LIKE à inscrire dans mon SELECT.

    Quelle est la fonction qui me permettrais de désigner touts les champs de la table ?

    Si par exemple, je dois faire une recherche sur le prénom Daniel, que dois-je indiquer après le WHERE ?

    SELECT * FROM adresses WHERE ???=Daniel
    Merci pour vos réponses!

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 178
    Points : 93
    Points
    93
    Par défaut
    peut-être peux-tu jouer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW COLUMNS FROM <my_table>
    ?

  3. #3
    Membre habitué Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Points : 156
    Points
    156
    Par défaut
    Evidement il y a la possibilité de faire (mais tu le sais sans doute) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM adresses WHERE champ1='Daniel' OR champ2='Daniel' OR...
    Tes champs sont de quel type?
    Si tu donnes plus d'information sur ta table, on aura plus d'idée peut être.

    Structure et pourquoi cette structure? parce que ça parait étrange que tu doives faire ce genre de requête.

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Il s'agit d'une base de données de généalogie. Les champs contiennent des informations sur le couple(mari et femme), date de mariage, enfants, parents, date de naissance, etc. et encore plus si il y a eu plusieurs mariages pour l'homme ou la femme.
    Présentement, il y a 30 champs par ligne et ça pourrait augmenter.
    Je veux donc en faire un moteur de recherche du genre Google avec une case pour inscrire des mots clés. Et comme l'affichage des résultats est bien précis selon les cas, je dois avoir de disponible tous ces champs pour y arriver.

    Pour Rolf-IV,
    J'ai fait des recherches pour le SHOW COLUMNS mais je n'ai pas trouvé comment je pourrais utiliser cette fonction dans mon cas.

    Merci pour toutes vos suggestions.

  5. #5
    Membre habitué Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Points : 156
    Points
    156
    Par défaut
    Je suis désolé, mais j'ai l'impression que ta structure de base de donnée n'est pas très bonne...

    Si je comprend bien dans une table, tu as un enregistrement par individu, et cet enregistrement contient, premier mari, deuxieme mari, enfant1, enfant2, frere1, frere2, etc...?

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    Citation Envoyé par greg13 Voir le message
    Je suis désolé, mais j'ai l'impression que ta structure de base de donnée n'est pas très bonne...
    +1

    une relation recursive (cf cours de merise) serait bien la
    create table ta_table(
    id
    nom
    prenom
    etc...
    parent => qui fait reference a id);

    plutot que de chercher les X enfants, freres et soeur....chercher le parent commun (puisque l'on a tous UN SEUL et unique couple pere/mere)

  7. #7
    Membre habitué Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Points : 156
    Points
    156
    Par défaut
    Il faudrait surement une deuxieme table pour ajouter les liens genre mariage... et divorce...

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Pour greg13,
    Il y a effectivement une ligne par individu, ce qui me donne les champs suivant:
    Nom du mari
    Nom de la femme
    Date de mariage
    numéro de photo de mariage (pour pouvoir l'afficher)
    Noms Enfants du couple(tous dans le même champs)
    Noms Parents du mari
    Noms Parents de la femme
    et autres renseignements sur le couple(travail, adresse, etc.)

    Si le mari a eu 2 mariages, je dois pouvoir inscrire dans un champs le nom de la femme2, date de mariage2, enfants2, etc. sur la même ligne parce que à l'origine, il s'agit toujours du même mari.
    L'ajout de plusieurs tables ne règlerais probablement pas le problème à cause de la quantité d'informations différentes que j'ai a montrer lors de l'affichage des résultats.

    Pour Doksuri,
    Malheureusement, il arrive très souvent que l'on ai que le nom des enfants.
    C'est ce qui est pratique avec cette base de données avec le nom d'un ou plusieurs enfants, on peut trouver une bonne quantité d'informations sur une généalogie.

  9. #9
    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
    La notion frère/soeur par exemple est implicite, elle n'a pas besoin d'être enregistrée dans un champ.

    Toutes les données repetées dans ta structure actuelle ca produit effectivement un truc ingérable.
    Il faut fonctionner avec des references par id.

    par exemple :

    Individus
    id Prénom Nom Né_de
    1 Jean Dupond
    2 Marie Martin
    3 Victor Dupond 498
    4 Annie Dupond 498

    Mariages
    id femme mari
    498 2 1

    etc.

    Les frères soeurs de Victor Dupond sont ceux qui ont le meme id de mariage.

Discussions similaires

  1. [AC-2010] Rechercher un enregistrement sur tous les champs
    Par Goose- dans le forum IHM
    Réponses: 4
    Dernier message: 08/11/2012, 15h10
  2. [MySQL] Faire une recherche sur tous les champ commencant par ..
    Par bullrot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2008, 11h45
  3. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 15h06
  4. [MySQL] Rechercher dans tous les champs
    Par Faure dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/10/2005, 14h52
  5. Recherche sur tous les fichiers d'un projet
    Par Kaorichan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/04/2005, 11h28

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