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

Bases de données Delphi Discussion :

recherche dans base de donnée mysql


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut recherche dans base de donnée mysql
    bonjours je voulais savoir comment faire pour rechercher une valeur dans une base de donnée mysql
    j'utilise mysql.pas
    merci de me repondre

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    C'est une recherche sur toute la base ou sur une table particulière ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    comme ma base ne cntient qu'une seule table la recherche est donc dans une seule table.
    cette recherche est meme que dans un champ (colonne sije ne me trompe pas)
    je pensait lire toute les donner comme j'ai vu dans un tuto, mais le probleme est que ma table est assez volumineuse (67365 lignes pour etre precis), cela serai trop long.
    merci de me repondre

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    la colonne en question est définie en (VAR)CHAR ou en numérique ?
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    tout depend je ferai plusieurs recherche differentes une pour les char et une pour les numerique
    mais celle que j'aimerai faire tout d'abord est celle pour les char.

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    Citation Envoyé par alex01pernot
    cette recherche est meme que dans un champ
    Ce champ ne peut pas être à géométrie variable...il est défini comment dans la table ?

    Un peu de précision(s) ne ferait pas de mal...ça conditionne la pertinence des réponses
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    ok j'ai du tres mal m'exprimer mais sa fait a peine une semaine que je commence les bases de donnees alors je m'y perd.
    mon champs s'appelle : Alliance et est defini en char(20).
    merci de ta patience et encore dsl

  8. #8
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    L'instruction SQL pour cette recherche sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select [col1, col2,...] from ma_table
    where alliance LIKE 'xxxxx'
    le xxxxx correspond à ce que tu cherches par approximation (emploi de LIKE)

    ça peut être
    - toto% pour trouver tout ce qui commence par toto
    - %toto pour trouver tout ce qui finit par toto
    - %toto% pour trouver tout ce qui contient par toto
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    merci pour cette reponse tres rapide mais je n'y arrive toujours pas,
    j'ai fait ceci :
    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
    procedure TForm1.Button8Click(Sender: TObject);
    Var Resultat: PMYSQL_RES;
    Compteurchamps:Longword;
    row: PMYSQL_ROW;
    ligne:string;
    I: Word;
     
    begin
     
    mysql_select_db(mysql, pChar(dbname));
     
    mysql_query(mysql, pChar('SELECT [id, alliance, autre] form '+table+' where nom LIKE %1%'));
    Resultat:=mysql_use_result(MySQL);
    Compteurchamps := mysql_num_fields(Resultat);
    row:= mysql_fetch_row(Resultat);
    while Row <> nil do
    begin
    ligne:='|';
    for I := 0 to Compteurchamps - 1 do
    begin
    ligne:=ligne+row[i]+' | ';
    end;
    Memo1.Lines.Add(ligne);
    Row := mysql_fetch_row(Resultat);
    end;
    end;
    et il me qu'il y a une violation d'adresse... lorsque je clique sur le button appellant ma procedure.
    merci de t'y consacré si genereusement.

  10. #10
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    Alors, déjà sur le code SQL pur, tu as adapté, c'est bien , mais tu aurais du le faire jusqu'au bout....
    1/ supprime les []
    2/ la colonne cherchée étant en CHAR, ce que l'on donne à chercher doit être entre quotes (cf mon exemple)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pChar('SELECT [id, alliance, autre] form '+table+' where nom LIKE %1%')
    En rouge : à rectifier. mettre entre quote le critère de recherche, par exemple avec le fonction QuotedStr

    Ce que je te conseille:
    1/ définir une variable String qui va contenir tes requètes (ex MaQuery)
    2/ construire la requète SQL dans MaQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaQuery:='SELECT id, alliance, autre from '+table+' where nom LIKE '+QuotedStr('%1%');
    3/ utilise cette variable dans le code de lancement de la requète
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    merci beaucoup sa marche.
    je te remercie pour tout ce que tu as fait.
    juste une derniere question, comment faire pour rechercher une valeur numérique ?

  12. #12
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    Pour les numériques, il faut utiliser les opérateurs de comparaison classiques: <,>,>=,<=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select col1 from matable where col2 > 3.14
    On doit aussi pouvoir "jouer" avec certaines fonctions natives sous MySQL :http://dev.mysql.com/doc/refman/5.0/...functions.html
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    ok sa marche tout tres bien.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2020
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2020
    Messages : 44
    Points : 0
    Points
    0
    Par défaut
    Recherche d'une clé dans une table MySQL

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/10/2008, 10h25
  2. recherche dans base de données selon 2 critères
    Par Nathalie68 dans le forum Excel
    Réponses: 1
    Dernier message: 20/02/2008, 21h19
  3. probleme recherche dans base de donnée
    Par 0kiss0 dans le forum ASP
    Réponses: 3
    Dernier message: 16/04/2007, 18h50
  4. [MySQL] Caractères accentués dans base de données MySQL
    Par enfin dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/01/2007, 20h54
  5. Recherche dans base de données et casse
    Par laurentdusseau dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/10/2006, 10h05

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