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

Android Discussion :

Chercher dans une base de données MySQL


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut Chercher dans une base de données MySQL
    Salut;

    j'ai réaliser une application android permet la connexion avec une base de donnée MySql,récupéré les données de la base, puis les affiché dans une ListVeiw.

    Ce que je souhaite maintenant,est de réaliser un bouton Chercher, permet d'afficher les résultats selon un critère de recherche récupérer d'un EditText.

    Est ce que je dois effectué un recherche directe dans la base de donnée, et récupérer seulement la résultat souhaité, puis les affiché dans une ListVeiw?
    Ou affiché toutes les résultats dans une ListVeiw, et effectué un recherche sur La ListV???

    Je ne sais pas laquelle des deux méthode est mieux a utilisée??
    Et Comment je peut appliqué l'un de ces méthodes??car je suis qu'un débutant en android

    Bien sur, s'il existe d'autre méthode, je suis preneur.

    Merci d'avance.

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 604
    Points : 18 520
    Points
    18 520
    Par défaut
    Salut.

    Pour moi le plus simple est de remplir une ListView avec un Cursor, en utilisant un SimpleCursorAdapter ou un CursorAdapter.

    Ensuite quand tu fais une recherche tu le fais dans la base de données, tu va récupérer un nouveau Cursor et tu pourras faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adapter.changeCursor(nouveauCursor);
    Et hop ta ListView se met à jour toute seule.
    Keith Flint 1969 - 2019

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Merci pour ta réponse.
    Citation Envoyé par thierrybenji Voir le message

    Pour moi le plus simple est de remplir une ListView avec un Cursor, en utilisant un SimpleCursorAdapter ou un CursorAdapter.
    Je ne suis pas habitué avec l'utilisation des Cursor, je travaille avec SimpleAdapter.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Salut,
    -la 1er étape, j'ai essayé de récupérer les données de la base par préciser le critère de recherche comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("SELECT matricule,nom, prenom, fonction from client WHERE prenom like '%".$_REQUEST['chercher']."%'", $conn);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("chercher","karam"));
    j'ai obtenu l'affichage souhaité.

    -La 2eme étape,je souhaite que l'utilisateur qui précise le critère de recherche.J'ai pensé a utilisé un EditText et récupéré le texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    EditText txt = (EditText) findViewById(R.id.editTextGeneral1);
    String cher = txt.getText().toString();
     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("chercher",cher));
    Mais a l'affichage, j'ai obtenu toutes les donnée de la table.
    Le recherche ne fonctionne pas
    Je ne sais pas si cette méthode est correcte??

  5. #5
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Selon moi, une fois tes données rapatriées depuis la ta bdd distante, ta recherche doit se faire en local dans ta ListView. C'est plus performant et plus économique (tout le monde n'a pas un forfait Data illimité !).

    Pour cela, applique un filtre de texte (TextFilter) sur ta listView par l'intermédiaire de ton adaptateur. Le critère de filtrage proviendra de ton EditText.

    Inspires-toi de ca par exemple : http://stackoverflow.com/questions/1...ter-on-android
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Pour cela, applique un filtre de texte (TextFilter) sur ta listView par l'intermédiaire de ton adaptateur. Le critère de filtrage proviendra de ton EditText.

    Inspires-toi de ca par exemple : http://stackoverflow.com/questions/1...ter-on-android
    Merci bien pour té réponse,

    Est ce que cette méthode fonctionner avec plusieurs colonnes?? et un SimpleAdapter ??

    J'ai essayé de l'appliquer, mais il m'affiche des erreurs

  7. #7
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 604
    Points : 18 520
    Points
    18 520
    Par défaut
    Créer les tables dans ta base de données SQLite.
    Ensuite créer des WebService pour synchroniser ta base local SQLite avec ta base MySQL.

    Et là tu peux faire des requêtes en local.
    Keith Flint 1969 - 2019

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/02/2014, 16h55
  2. [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
  3. [MySQL] Requête mysql qui permet de chercher dans une base de données complète.
    Par your_joker dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/07/2008, 10h28
  4. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  5. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00

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