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 Studio Java Discussion :

Base de donnée MySQL - Android Studio


Sujet :

Android Studio Java

  1. #1
    Candidat au Club  
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Base de donnée MySQL - Android Studio
    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.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Première ligne : htttp au lieux de http ?

    J'ai pas lu plus loin
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club  
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai bien mis http:// dans mon prog, comme j'ai voulu masquer le lien j'ai réécrit un truc bidon et j'ai fais une faute de frappe.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Ok , donc il nous faut plus d'infos :

    - Y'a t'il des infos dans le logcat ?
    - A quoi ressemble ton json ?
    - Que vaut response dans onResponse => est tu sur que c'est bien un tableau qui lui est passé et pas un objet contenant un tableau ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club  
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Premièrement il m'est impossible d'afficher les logcat, oui ça ne veut pas fonctionner...

    Mon json ressemble a ca:

    [{"id":"1","NomLieu":"titi","NdeLaRue":tutu,"Rue":"toto"l}]

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Heu... le LogCat marche toujours partout (même sur les vrais devices) hein !
    Tu es sur d'avoir connecté le logcat au bon émulateur (ou au bon device) ou de ne pas filtrer sur la mauvaise application ?

    Sinon, Log.d(,e) y a un soucis.... si c'est une erreur, ça ne peut pas être du debug
    Log.e(xxxx,e) sera mieux (et surtout pas Log.e(xxxx+e.toString()); )

    Ensuite une truc complètement anecdotique: il n'est pas recommandé dans un service de renvoyer une "array" JSON directement.

    La raison est qu'il est possible en js de redéfinir le constructeur de array, et ainsi "copier" les données d'un site à la vollée, ou autres joyeusetés.
    En général, les services renvoient toujours un JSONObejct (qui peut éventuellement contenir une array en property).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Bonjour,
    Citation Envoyé par maxime1709 Voir le message
    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'utilise la libraire Volley.
    Tu crées bien un JsonArrayRequest mais nulle part tu l'ajoutes dans une queue. Dans ce cas la requête ne sera jamais exécutée.
    Si je peux te donner un truc vite fait je te proposerai ceci :

    - Créer avant tout un objet RequestQueue qui se chargera de l'exécution des requêtes qui seront ajoutées dedans par ordre de priorité (Priorité pas obligatoire dans ton cas car il ne s'agit que d'une seule requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RequestQueue mRequestQueue = Volley.newRequestQueue(getApplicationContext());
    - Ensuite, après avoir bien préparé ta requête (comme tu l'as déjà fait d'ailleurs) tu peux l'ajouter dans l'objet RequestQueue afin qu'elle soit exécutée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mRequestQueue .add(jsObjRequest );

    Christian Djo,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2015, 11h49
  2. Réponses: 8
    Dernier message: 17/06/2013, 11h12
  3. Réponses: 1
    Dernier message: 09/11/2012, 14h04
  4. Réponses: 4
    Dernier message: 20/07/2011, 14h03
  5. Réponses: 1
    Dernier message: 19/07/2007, 21h09

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