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 :

Base de données externe


Sujet :

Android

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut Base de données externe
    Bonjour à tous et à toutes,
    Je suis nouveau sur application android.
    Je possède une base de donnée MySQL. J'aimerai savoir comment accéder à celle ci et comment exécuter des requêtes afin d'afficher des données dans mon application Android?

    Quelqu'un saurait comment faire? Avez vous un tuto à me proposer?

    Merci d'avance de votre aide

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    J'ai trouvé un tuto me montrant comment faire communiquer un script PHP à Android ce qui fait que j’exécute mes requêtes en PHP et je récupère mes données dans l'appli android:
    lien ici.

    Si vous avez d'autres idées ou des remarques je suis preneur

  3. #3
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Bonjour, il y a plusieurs sujet concernant les connexions à une base de données distante.

    Perso j'ai utiliser ce tuto

    http://www.helloandroid.com/tutorial...mysql-database

    Faut que tu te penche sur les package org.apache.http

    Edit: Je m'attendais pas à une réponse en même temps que moi, c'est la même solution, en passant par du PHP

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci beaucoup Malgache! C'est à peu près la même solution que j'ai proposé juste au dessus! Apparemment c'est la meilleur façon de faire!
    Merci encore

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par David55 Voir le message
    J'ai trouvé un tuto me montrant comment faire communiquer un script PHP à Android ce qui fait que j’exécute mes requêtes en PHP et je récupère mes données dans l'appli android:
    lien ici.
    J'ai tenté de faire ce tuto, mais autant la partie java ça va à peu prés autant le php ... :s est-ce qu'il faut créer le fichier Ville.php et le mettre dans le dossier www de WAMP (vu que j'utilise WAMP) ou ya-t-il une autre méthode??

  6. #6
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Euu d'autre méthode c'est possible, mais pour celle la, il te faut un fichier php par requête.

    Et une info importante, que ce soit pour toi ou David55, les deux tuto proposé (son lien et le mien) seront si je ne me trompe pas des requêtes synchrone, l'application sera figé durant l'exécution de celle-ci !!
    Mais bon, faut quand même passer par cette étape je pense pour bien comprendre le fonctionnement, et si il le faut, passer sur une requête "asynchrone"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bah justement .. je l'ai créé ce fichier PHP mais quand je lance l'appli j'ai une erreurs, voici ce que le Log m'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    06-08 07:31:25.135: INFO/ActivityManager(58): Start proc com.julie for activity com.julie/.VillePHP: pid=277 uid=10041 gids={3003, 1015}
    06-08 07:31:26.135: INFO/ARMAssembler(58): generated scanline__00000077:03545404_00000004_00000000 [ 47 ipp] (67 ins) at [0x3046c8:0x3047d4] in 4631254 ns
    06-08 07:31:28.525: ERROR/log_tag(277): Error parsing data org.json.JSONException: Value Error of type java.lang.String cannot be converted to JSONArray
    06-08 07:31:28.746: INFO/ActivityManager(58): Displayed activity com.julie/.VillePHP: 3713 ms (total 3713 ms)
    Si c'est une erreur de parsing ... elle vient d'où? j'ai copié le code du tuto en changeant juste le nom du projet et donc de la classe :s

  8. #8
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Tu peux faire voir ton code? Apparemment à un moment tu essai de convertir un String en JSONArray...

  9. #9
    Invité
    Invité(e)
    Par défaut
    J'ai aussi lu les commantaires sur ce forum :
    http://www.developpez.net/forums/d10...mysql-android/
    mais je n'ai pas résolu mon problème, voici mon code :

    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
    public class VillePHP extends Activity {  
         TextView txt;  
     
         @Override 
         public void onCreate(Bundle savedInstanceState) 
         {  
             super.onCreate(savedInstanceState);  
             setContentView(R.layout.main);  
             LinearLayout rootLayout = new LinearLayout(getApplicationContext());    
             txt = new TextView(getApplicationContext());    
             rootLayout.addView(txt);    
             setContentView(rootLayout);    
     
             txt.setText("Connexion...");   
     
             txt.setText(getServerData(strURL));   
         }  
     
        public static final String strURL = "http://192.168.32.147/www/ville.php";  
        private String getServerData(String returnString) {  
            InputStream is = null;  
            String result = "";  
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
            nameValuePairs.add(new BasicNameValuePair("ville","L"));  
     
            try{  
                HttpClient httpclient = new DefaultHttpClient();  
                HttpPost httppost = new HttpPost(strURL);  
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  
                HttpResponse response = httpclient.execute(httppost);  
                HttpEntity entity = response.getEntity();  
                is = entity.getContent();  
     
     
            }catch(Exception e){  
                Log.e("log_tag", "Error in http connection " + e.toString());  
            }  
     
            // Convertion de la requête en string  
            try{  
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),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.e("log_tag", "Error converting result " + e.toString());  
            }  
            try{  
               JSONArray jArray = new JSONArray(result);  
                for(int i=0;i<jArray.length();i++){  
                   JSONObject json_data = jArray.getJSONObject(i); 
                    Log.i("log_tag","ID_ville: "+json_data.getInt("ID_ville")+  
                            ", Nom_ville: "+json_data.getString("Nom_ville")  
                    );    
                    returnString += "\n\t" + jArray.getJSONObject(i);   
                }  
            }catch(JSONException e){  
                Log.e("log_tag", "Error parsing data " + e.toString());  
           }  
           return returnString;   
        }  
    }

  10. #10
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Et le code de ton fichier ville.php? tu retourne la valeur comment?

  11. #11
    Invité
    Invité(e)
    Par défaut
    le code PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php  
      mysql_connect("localhost","root","password");  
      mysql_select_db("bdVille");  
      $sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_REQUEST['L']."%'");  
     while($row=mysql_fetch_assoc($sql))  
     $output[]=$row;  
     print(json_encode($output));  
     mysql_close();  
    ?>
    Et je retourne la valeur dans le logcat non?

  12. #12
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Y'a un petit souci (mais je sais pas si ca vient de la mais y'a des chances)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nameValuePairs.add(new BasicNameValuePair("ville","L"));
    Tu passe un paramètre qui a pour identifiant "ville" et pour valeur "L"

    Et dans le PHP tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_REQUEST['L']."%'");
    Tu récupère la variable envoyé avec $_REQUEST et qui a pour identifiant "L"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_REQUEST['ville']."%'");
    Avec ca, ca devrai fonctionner (du moins je l'espère ^^)

  13. #13
    Invité
    Invité(e)
    Par défaut
    J'ai fait la modif mais j'ai toujours la même erreur :s

    Il faut bien mettre le fichier ville.php dans le dossier www de wamp?

  14. #14
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Dans le dossier WWW le mieux c'est de crée un dossier mesRequetes, et ton adresse du coupe doit être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://192.168.32.147/mesRequetes/ville.php

    Le www tu n'as pas à le mettre parce que ton adresse 192.168.32.147 doit normalement pointer dessus

  15. #15
    Invité
    Invité(e)
    Par défaut
    Je n'ai plus d'erreurs qui s'affiche dans le log ... par contre je n'affiche pas non plus les villes que je devrais afficher avec ma requete.

  16. #16
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Essaie de faire ta requête dans phpMyAdmin pour voir déjà si elle te renvoie bien des résultats.

    Peut être aussi que tu choisi pas le bon identifiant quand tu fais tes get...

  17. #17
    Invité
    Invité(e)
    Par défaut
    Il fallait bien écrire ça dans l'onglet requête de ma table mysql? Parce que là ça me met une erreur de syntax SQL

  18. #18
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Citation Envoyé par fowlie Voir le message
    Il fallait bien écrire ça dans l'onglet requête de ma table mysql? Parce que là ça me met une erreur de syntax SQL
    Justement c'est bien que ton code SQL est mauvais, et donc ne te renverra pas de résultat. Qu'as tu copié collé dans le champ requête? Et quelle erreur de syntaxe te dit-il?

  19. #19
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    T'as mis

    SELECT * FROM tblVille WHERE Nom_ville like 'L%'
    ???

  20. #20
    Invité
    Invité(e)
    Par défaut
    Je viens de tester avec ça, et ça me met la même erreur.

    Je crois que ça vient du symbole < sur la 1ére ligne (il faut mettre &lt non?) enfin c'est ce que me dit l'erreur. mais si c'est ça je met uoi pour le symbole > ?


    ---EDIT---

    J'ai relancé mon programme et je n'ai plus d'erreur dans le logcat, pourtant je n'affiche pas pour autant les villes.

    Voici la partie du programme qui devrait me les afficher 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
    13
    14
            try{  
               JSONArray jArray = new JSONArray(result);  
                for(int i=0;i<jArray.length();i++){  
                   JSONObject json_data = jArray.getJSONObject(i);  
                   // Affichage ID_ville et Nom_ville dans le LogCat  
                    Log.i("log_tag","ID_ville: "+json_data.getInt("ID_ville")+  
                            ", Nom_ville: "+json_data.getString("Nom_ville")  
                    );  
                    // Résultats de la requête  
                    returnString += "\n\t" + jArray.getJSONObject(i);   
                }  
            }catch(JSONException e){  
                Log.e("log_tag", "Error parsing data " + e.toString());  
           }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Accéder aux bases de données externes ? (allociné,idbm..)
    Par Silvergrom dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 27/11/2006, 14h07
  2. Bases de données externe
    Par karidrou dans le forum Access
    Réponses: 3
    Dernier message: 20/02/2006, 15h08
  3. pilote de base de donnée externe (22)
    Par Pierren dans le forum Access
    Réponses: 4
    Dernier message: 12/02/2006, 11h18
  4. Base de données externe free.fr
    Par hamtary dans le forum WinDev
    Réponses: 1
    Dernier message: 28/06/2005, 14h06
  5. Base de données externe
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 14h09

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