Bonjour,

Je viens vers vous car j'ai un problème que je n'arrive pas a régler après plusieurs tentatives. Je m'explique, j'ai une base de donnée externe MySQL et j'aimerai afficher les infos d'une table dans mon appli.

Côté serveur ça donne ça:

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
<?php
 
    /*
        ** Script de visualisation des données en fonction d'une certaine reqûete !
    */
 
 
    // Connexion à la base !
    mysql_connect("xxx", "xxxx", "xxxxx");
    mysql_select_db("xxx");
 
 
    // Modifier cette ligne si besoin !
    $q = mysql_query("SELECT * FROM toto");
 
    // Parcours des résultats.
    while ($e = mysql_fetch_assoc($q)) {
        $output[] = $e; // Insertion des résultats dans un tableau.
    }
    print(json_encode($output)); // encodage du tableau avec JSON
    mysql_close(); // on ferme la connexion !
 
?>
Ca fonctionne correctement.

Côté android j'ai :

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
String url = "htttp://xxxx.fr/toto.php";
 
        JsonArrayRequest jsObjRequest = new JsonArrayRequest
                (Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
 
                    @Override
                    public void onResponse(JSONArray response) {
                        JSONObject jObject = null;
 
                        for (int i = 0; i < response.length() ; i++) {
                            try {
                                jObject = (JSONObject) response.get(i);
                                String name = jObject.getString("NomLieu");
                               lieux.add(name);
 
                            }
                            catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }, new Response.ErrorListener() {
 
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d("Error", error.toString());
 
                    }
                });
J'ai l'impression que ce code fonctionne avec ce que j'ai pu voir sur Internet mais rien n'y fait ! Ca ne veut pas s'afficher sur mon appli.

'lieux' etant une simple ArrayList<String>.

L'affichage est correct car si je fais lieux.add("toto"); manuellement, ça s'affiche bien. Ce qui prouve bien que le problème vient du JSONarrayRequest ...

J'utilise la libraire Volley.

Merci bien.