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. #61
    Invité
    Invité(e)
    Par défaut
    Oui j'ai rajouté les permission internet =)

    Par contre je n'ai pas de $_POST dans mon code PHP , j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php  
    	mysql_connect("localhost","root");  
    	mysql_select_db("bdVille");  
    	$sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like 'L%'");  
    	while($row=mysql_fetch_assoc($sql))  
    	$output[]=$row;  
    	print(json_encode($output));  
    	mysql_close();  
    ?>

  2. #62
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Points : 494
    Points
    494
    Par défaut
    Citation Envoyé par fowlie Voir le message
    Oui j'ai rajouté les permission internet =)
    Et avec ça tu as toujours des erreurs ?

    Citation Envoyé par fowlie Voir le message
    Par contre je n'ai pas de $_POST dans mon code PHP , j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php  
    	mysql_connect("localhost","root");  
    	mysql_select_db("bdVille");  
    	$sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like 'L%'");  
    	while($row=mysql_fetch_assoc($sql))  
    	$output[]=$row;  
    	print(json_encode($output));  
    	mysql_close();  
    ?>
    Pour utiliser la variable POST ou GET il faudrait mettre un truc du genre (je ne suis pas très bon en php donc je suis pas sur de la syntaxe)
    $sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_GET["ville"]."%'");

  3. #63
    Invité
    Invité(e)
    Par défaut
    Ok, bon j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php  
    	mysql_connect("localhost","root");  
    	mysql_select_db("bdVille");  
    	$sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_GET['ville']."%'");   
    	while($row=mysql_fetch_assoc($sql))  
    	$output[]=$row;  
    	print(json_encode($output));  
    	mysql_close();  
    ?>
    mais j'ai toujours la même erreur.
    Et en plus j'essai d'afficher result dans cette partie du 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
            // 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();  
                Log.i("result", result);
            }catch(Exception e){  
                Log.e("log_tag", "Error converting result " + e.toString());  
            }
    mais j'ai un log avec marqué : file not found :s

  4. #64
    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
    Je reprend la discussion de cour, t'es repartie donc sur un requête get?

    C'est possible de voir tout le code en entier pour avoir une vue global?
    Et il t'affiche quoi exactement ton logCat?

  5. #65
    Invité
    Invité(e)
    Par défaut
    alors la derniére version du code c'est :

    le code java :
    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
    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/mesRequestes/Ville.php";      
        private String getServerData(String returnString) {  
            InputStream is = null;  
            String result = "";  
            // Envoyer la requête au script PHP.
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
            nameValuePairs.add(new BasicNameValuePair("ville","L"));  
            // Envoie de la commande http  
            try{  
                HttpClient httpclient = new DefaultHttpClient();
                HttpResponse response = httpclient.execute(new HttpGet(strURL));
                is = response.getEntity().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();  
                Log.i("result", result);
            }catch(Exception e){  
                Log.e("log_tag", "Error converting result " + e.toString());  
            }  
     
            // Parse les données JSON  
            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());  
           }  
           return returnString;   
        }  
    }
    le code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php  
    	mysql_connect("localhost","root");  
    	mysql_select_db("bdVille");  
    	$sql=mysql_query("SELECT * FROM tblVille WHERE Nom_ville like '".$_GET['L']."%'");   
    	while($row=mysql_fetch_assoc($sql))  
    	$output[]=$row;  
    	print(json_encode($output));  
    	mysql_close();  
    ?>

    et le logcat m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    06-10 06:49:52.559: INFO/AndroidRuntime(257): NOTE: attach of thread 'Binder Thread #3' failed
    06-10 06:49:52.589: INFO/ActivityManager(58): Start proc com.julie for activity com.julie/.VillePHP: pid=276 uid=10041 gids={3003}
    06-10 06:49:53.719: INFO/result(276): Sorry, file not found.
    06-10 06:49:53.739: ERROR/log_tag(276): Error parsing data org.json.JSONException: Value Sorry of type java.lang.String cannot be converted to JSONArray
    06-10 06:49:54.249: INFO/ActivityManager(58): Displayed activity com.julie/.VillePHP: 1686 ms (total 26904 ms)
    06-10 06:49:54.249: INFO/ActivityManager(58): Displayed activity com.android.launcher/com.android.launcher2.Launcher: 26910 ms (total 26910 ms)

  6. #66
    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
    Déjà un soucis;
    depuis ton Android, tu envoies ta requête via la méthode POST; donc change dans ton PHP $_GET par $_POST;

    puis dans ton constructeur du InputStreamReader, vire le charset; ne laisse que new InputStreamReader(is);

  7. #67
    Invité
    Invité(e)
    Par défaut
    J'ai fait les changements .. mais toujours le même problème :s

  8. #68
    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
    Si tu entres directement l'URL depuis ton navigateur Internet de l'Android, ça fonctionne?

  9. #69
    Invité
    Invité(e)
    Par défaut
    je peux pas écrire l'adresse sur mon émulateur, il veut pas m'écrire les chiffre

  10. #70
    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
    Tu peux écrire dans l'émulateur avec ton clavier physique de ton ordi, ou clavier virtuel de l'émulateur. Si t'y arrives pas; va dans les paramètres Android dans l'émulateur pour parametrer la configuration regionale.

  11. #71
    Invité
    Invité(e)
    Par défaut
    J'ai essayé avec le clavier, les lettres ça marche mais pas les chiffre :s

    va dans les paramètres Android dans l'émulateur pour parametrer la configuration regionale.
    euh tu peux être plus précis stp ?

  12. #72
    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
    Bien t'as des paramètres dans ton système Android; là où tu règles tes sonneries et tout...
    Et t'as un menu pour configurer tout ce qui est langue régionale, ... vérifie bien que t'es bien en français en terme d'écriture.

    Le truc c'est de savoir si depuis ton émulateur à la main depuis ton navigateur, t'arrive déjà à accéder à ta page!

  13. #73
    Invité
    Invité(e)
    Par défaut
    Oui je suis bien en français mais le pb vient de l'émulateur ... je ne peux pas écrire de chiffre dans l'explorer :s

  14. #74
    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
    Si t'as un pavé numérique ne l'utilise pas, il faut utilisé les chiffre qui se trouvent en haut du clavier.

  15. #75
    Invité
    Invité(e)
    Par défaut
    argh j'avais pas pensé, merci effectivement ça marche mieux.

    Bon alors mon émulateur m'affiche : Sorry, file not found

  16. #76
    Invité
    Invité(e)
    Par défaut
    mais dans mon url je met l'adresse IP de mon Pc sur lequel sont installé mon serveur et ma bdd, mais mon émulateur ne peux pas y accéder, c'est donc plutot logique qu'il m'affiche un file not found. Du coup quel url je dois mettre pour accéder à ma bdd?

  17. #77
    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 par le navigateur l'url fonctionne. Parce que pour mes test je bossais sur un serveur local donc je rentrais l'ip relié au serveur et ca fonctionait...

  18. #78
    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
    tu dois configurer Wamp;
    normalement, si tu fais clic droit sur l'icone de Wamp, tu dois pouvoir quelque part éditer la configuration d'Apache (fichier: httpd.conf);

    Une fois que tu l'as trouvé, dans ce fichier, tu devrais trouver quelque part cette ligne: édite cette ligne par juste:et normalement, ton site devrait être visible depuis l'émulateur.
    En gros, avant cette modification, Apache (Wamp) n'autorise l'accès à tes pages web local que depuis la machine elle-même.

  19. #79
    Invité
    Invité(e)
    Par défaut
    Bon ... toujours la même erreur de parsing :s
    En fait j'avais déja listen:8080, j'ai changé en listen 127.0.0.1:8080 pour voir la différence mais aucune :s

    et si dans l'explorateur de mon émulateur je met :
    http://192.168.32.147/mesRequestes/Ville.php ça m'affiche file not found et si je met http//192.168.32.147:8080/mesRequestes/Ville.php ça m'affiche :

    Forbidden
    You don't have permission to access /mesRequestes/ville.php on this server

    ---EDIT---
    On m'a dit que mon code PHP était obsoléte et que je devrais plutôt passer par du pdo, vous en pensez quoi? quelques tutos à me conseiller? Merci

    ---EDIT2---
    J'ai essayé de créer un utilisateur test avec un mot de passe et de modifier mon php en conséquence ... mais même pb
    Dernière modification par Invité ; 14/06/2011 à 10h47.

  20. #80
    Invité
    Invité(e)
    Par défaut
    Aprés quelques heures de recherches j'ai pt un début de solution,

    Lorsque sur mon émulateur je met l'url : http://10.0.2.2:8080/mesRequestes/Ville.php

    J'affiche bien les villes concernées par ma requêtes =D

    Par contre si je tente de lancer mon programme (en mettant la bonne url cette fois) ... toujours ce problème de parsing -_-

    ---EDIT---
    En fait j'ai toujours l'erreur de parsing qui s'affiche dans mon logcat, mais j'ai aussi le résultat de ma requête qui s'affiche pour ma variable result, donc mon programme marche à peu prés, le seul problème, c'est que ça ne s'affiche pas dans l'émulateur ...

    ---EDIT2---
    voici la partie du code d'où provient l'erreur, dites-moi si vous voyez d'où peut venir le pb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
            // Parse les données JSON  
            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());  
           }
    J'ai entendu parler de mysql connector qu'il fallait parfois mettre dans les projets Eclipse, est-ce que ça peut venir de là? parce que je ne l'ai pas mis dans mon projet?

    lien : http://www.mysql.com/products/connector/
    Dernière modification par Invité ; 14/06/2011 à 11h53.

+ Répondre à la discussion
Cette discussion est résolue.

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