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
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
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
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
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
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.
Ce champ ne peut pas être à géométrie variable...il est défini comment dans la table ?Envoyé par alex01pernot
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
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
L'instruction SQL pour cette recherche sera
le xxxxx correspond à ce que tu cherches par approximation (emploi de LIKE)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select [col1, col2,...] from ma_table where alliance LIKE 'xxxxx'
ç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
merci pour cette reponse tres rapide mais je n'y arrive toujours pas,
j'ai fait ceci :
et il me qu'il y a une violation d'adresse... lorsque je clique sur le button appellant ma procedure.
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;
merci de t'y consacré si genereusement.
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)
En rouge : à rectifier. mettre entre quote le critère de recherche, par exemple avec le fonction QuotedStr
Code : Sélectionner tout - Visualiser dans une fenêtre à part pChar('SELECT [id, alliance, autre] form '+table+' where nom LIKE %1%')
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
3/ utilise cette variable dans le code de lancement de la requète
Code : Sélectionner tout - Visualiser dans une fenêtre à part MaQuery:='SELECT id, alliance, autre from '+table+' where nom LIKE '+QuotedStr('%1%');
"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
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 ?
Pour les numériques, il faut utiliser les opérateurs de comparaison classiques: <,>,>=,<=
On doit aussi pouvoir "jouer" avec certaines fonctions natives sous MySQL :http://dev.mysql.com/doc/refman/5.0/...functions.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part select col1 from matable where col2 > 3.14
"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
Recherche d'une clé dans une table MySQL
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager