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 :

Afficher la résultat d'une SELECT dans un tableau(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 Afficher la résultat d'une SELECT dans un tableau(MYSQL)
    Bonsoir;
    Je cherche à faire une application android me permet d'interagir la base de donnée(Mysql) et récupérer les données(pour le moment deux colonnes: nom et catégorie).
    Ce que j'ai réalisée dans un premier temps, accédée a la base de donnée et affichée les résultat dans le Logcat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try{ 
    JSONArray jArray = new JSONArray(result); 
    for(int i=0;i<jArray.length();i++) 
    { 
    json_data = jArray.getJSONObject(i); 
    Log.i("log_tag","nom: 
    "+json_data.getString("nom")+ 
    ", categorie: 
    "+json_data.getString("categorie")); 
    } 
    }
    Ce que je veux ,c'est comment afficher les résultats dans une LISTVIEW,pour voir les résultats sur l'émulateur.

    Merci

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 606
    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 606
    Points : 18 526
    Points
    18 526
    Par défaut
    Tu fais une classe qu'extends BaseAdapter et dans le constructeur tu reçois un JSONArray.

    Suis le tuto sur les ListView, c'est la même chose mais avec une ArrayList.
    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
    Bonsoir;

    Merci Benjamin pour ta réponse;
    J'ai déjà résolu l'une de mes problèmes, est l'affichage du résultat sur l'émulateur.
    j'ai trouvé une discussion au forum, qui m'a soutenu beaucoup:
    http://www.developpez.net/forums/d11...android-mysql/
    Voici le code que j'ai travaillé:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public class HelloMetaComputer extends Activity implements OnItemClickListener {
        /** Called when the activity is first created. */
    	String returnString = "";
    	ListView lvListe;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            ListView lv = (ListView) findViewById(R.id.lvliste);
            lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,getServerData()));
            lv.setOnItemClickListener(this);
                                                                           }
        private String[] getServerData() {
    	InputStream is = null;
    	String result = "";
     
            ArrayList<String> returnedValues = new ArrayList<String>();
            ArrayList<NameValuePair> nameValuePairs = new    ArrayList<NameValuePair>();
         ArrayList<String> donnees = new ArrayList<String>();
            try{
         //commandes httpClient
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new   HttpPost("http://10.0.2.2/connexion_mysql.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
         }
           catch(Exception e){
           Log.i("taghttppost",""+e.toString());
                Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
           }
     
         //conversion de la réponse en chaine de caractère
           try
           {
           BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));
           StringBuilder sb  = new StringBuilder();
           String line = null;
           while ((line = reader.readLine()) != null) 
             {
             sb.append(line + "\n");
             }
             is.close();
             result = sb.toString();
            }
            catch(Exception e)
            {
             Log.i("tagconvertstr",""+e.toString());
            }
            //recuperation des donnees json
            try{
              JSONArray jArray = new JSONArray(result);     
                 for(int i=0;i<jArray.length();i++)
                 {          
                	JSONObject json_data = jArray.getJSONObject(i);            
                	 returnedValues.add(json_data.getString("nom"));
                	 returnedValues.add(json_data.getString("categorie"));
                 }
            }
            catch(JSONException e)
    		{
    			Log.e("log_tag", "Error parsing data:",e);
    		}
                    return returnedValues.toArray(new String[returnedValues.size()]);    
                    }
                  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {	
    	}
    }
    l'affichage de mon travaille est:

    Nom1
    Categorie1
    nom2
    categorie2
    ....
    Ce que je veux est l'affichage suivant:
    Nom1 categorie1
    nom2 categorie2
    ....
    Ce que j'ai trouvé dans des tutoriels,pour réaliser cette affichage je dois modifier le fichier XML.

    Citation Envoyé par thierrybenji Voir le message
    Tu fais une classe qu'extends BaseAdapter et dans le constructeur tu reçois un JSONArray.
    Je ne comprends pas, à quoi sert la classe BaseAdapter pour avoir la résultat souhaité?? est ce qu'il est nécessaire de la réaliser??


    Merci encore une fois.

  4. #4
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 606
    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 606
    Points : 18 526
    Points
    18 526
    Par défaut
    Si tu as un JSONArray et que tu veux remplir une ListView avec, tu peux passer par un BaseAdapter.

    Là t'as utilisé un ArrayAdapter et transformé un JSONArray en String[] si j'ai bien compris.
    Je ne connais pas les ArrayAdapter, donc je ne peux pas t'aider pour avoir l'affichage souhaité.

    Mais je pense que tu pourrais faire :

    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
    27
    public class MonAdapter extends BaseAdapter{
         private JSONArray mArray;
         private LayoutInflater mInflater;
     
         public MonAdapter(Context context, JSONArray array){
              mInflater = LayoutInflater.from(context);
              mArray = array;
         }
     
         @Override
         public int getCount() {
              return mArray.length();
         }
     
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
              LinearLayout layoutItem;
     
              if (convertView == null) {
                   layoutItem = (LinearLayout) mInflater.inflate(R.layout.row_pays, parent, false);
              } else {
                   layoutItem = (LinearLayout) convertView;
              }
     
              mArray.get(position);
         }
    }
    Un truc comme ça devrais marcher je suppose.
    Keith Flint 1969 - 2019

Discussions similaires

  1. Afficher le résultat d'une requête dans un tableau
    Par amola1992 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 24/07/2014, 15h45
  2. Afficher le résultat d'une requête dans un SELECT et appeler une autre requête
    Par toutoune95800 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/06/2013, 13h22
  3. Afficher le résultat d'une fonction dans un tableau
    Par aminaloli dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/08/2012, 10h21
  4. Afficher les résultats d'une requête dans un tableau
    Par zoro007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/08/2010, 09h30
  5. [MySQL] Afficher le résultat d'une requête dans un tableau
    Par magobouli dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/02/2007, 14h41

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