abdallah123 Posté(e) 12 décembre 2011 Share Posté(e) 12 décembre 2011 (modifié) bonjour, j'ai utiliser ce tutoriel pour lier android a mysql: http://www.helloandr...-mysql-database la connexion entre php et mysql fonctionne mais lorsque j'ai mis le code dans android ca n'a pas marche et c'est comme si je n'ai rien ecrit j'ai rien recu ni des message d'erreur ni rien et meme j'ai essaye d'ecrire le resultat dans un edittext mais ca n'a rien rendu alors que peut etre le probleme? c'est comme ci j'ai rien ecrit comme code, j'ai eut aucun resultat.. et puisque easyphp contient des base de donnee sqlite alors comment connecter android a une base de donnee sqlite dans mysql et comment faire push a une base de donnee a distance. j'ai vraiment besoin d'aide........... merci. Modifié 12 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 12 décembre 2011 Auteur Share Posté(e) 12 décembre 2011 (modifié) I am a newbie can anyone help me plz?!! is anyone reading this or am i just writing ..!! Modifié 12 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Première étape: vérifier que le code PHP retourne bien un résultat. As-tu essayé de l'appeler depuis un navigateur ? As-tu bien un résultat qui s'affiche dans le navigateur ? Si cela fonctionne, ensuite, tu peux tester ton appli Android. Si une erreur se produit, tu auras forcément un message d'erreur dans le LogCat. A toi de nous dire ensuite lequel Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 oui, ca a marche dans le navigateur et ca a retourne le bon resultat mais dans android je n'ai rien eut meme pas dans le logcat.rien du tout comme ci je n'ai rien ecrit Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 tu peux mettre un extrait de ton code ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 (modifié) String result = ""; //the year data to send ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("year","1980")); //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://example.com/getAllPeopleBornAfter.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); } //convert response to string try{ BufferedReader reader = new BufferedReader(newInputStreamReader(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()); } //parse json data 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: "+json_data.getInt("id")+ ", name: "+json_data.getString("name")+ ", sex: "+json_data.getInt("sex")+ ", birthyear: "+json_data.getInt("birthyear") ); } } }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } merci pour l'aide ok alors excusez-moi j'ai cru que le log c'est la console comme en c# alors j'ai vu que non mais j'ai vu le log et j'ai vu des erreurs mais je les effacer pour retester le projet apres avoir demarrer easyphp alors j'ai plus eut un log message le log est vide comment je peux revoire mon log? Modifié 13 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Tu peux utiliser les balises [ code ] pour présenter ton code dans ton post, parce que là, c'est juste illisible... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 (modifié) String result = ""; //the year data to send ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("year","1980")); //http post try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://example.com/getAllPeopleBornAfter.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); } //convert response to 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()); } //parse json data 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: "+json_data.getInt("id")+ ", name: "+json_data.getString("name")+ ", sex: "+json_data.getInt("sex")+ ", birthyear: "+json_data.getInt("birthyear") ); } } }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } merci bien, pour l'aide mais encore une question: ok alors excusez-moi j'ai cru que le log c'est la console comme en c# alors j'ai vu que non mais j'ai vu le log et j'ai vu des erreurs mais je les effacer pour retester le projet apres avoir demarrer easyphp alors j'ai plus eut un log message le log est vide comment je peux revoire mon log? et ou se trouve le log c'est dans log error et si j'ecris log.i(); alors ou je dois avoir la reponse? Modifié 13 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Il suffit de relancer l'application pour avoir de nouveau les messages qui s'affichent Si, par contre, tu as fermé la fenêtre LogCat, il suffit de la réouvrir; dans Eclipse, menu Window/Show view/Logcat (ou Other.../Android/Locgat si Logcat n'apparait pas directement dans le menu) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 ok merci alors c'est la je ne savais pas je regardais la console et l'error log alors je vais tester a nouveau et regarder le log cat :) merci j'ai eut comme reponse: error in http connection java.net.socketexception permission denied error in converting result... alors la connection n'a pas marche mais pourquoi? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 parce que tu n'as pas ajouté la permission d'accès Internet à ton application A ajouter dans le AndroidManifest.xml de ton projet, onglet Permissions, bouton Add/Uses Permission, choisir android.permission.INTERNET Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 alors l'erreur c'etait car j'ai pas mis la permission de l'utilisation de l'iinternet alors maintenant j'ai eut connection a 127.0.0.1 refused je vais voir pourquoi!! j'ai eut error in http connection org.apache.http.HttpHostConnectException: connection to http://127.0.0.1 refused alors je crois que ca a marche j'ai remplace 127.0.0.1 par exemple .com mais j'ai eut une erreur de parse de json :P: error parsing data org.json.jsonException value<!Doctype of type java.lang.string cannot be converted to jsonarray Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 127.0.0.1 correspond à l'adresse locale de ton smartphone, c'est à dire que tu essayes d'accéder à un serveur http qui serait présent sur ton appareil Android, ce qui ne doit pas être ce que tu souhaites faire Si tu utilises l'émulateur, et que tu souhaites accéder à un serveur http qui serait présent sur ton poste de dev, alors, il faut que tu utilises l'adresse spéciale 10.0.2.2 (cf doc de l'émulateur) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 oui je t'ai repondu je sais ca :) merci je t'ai dit que je l'ai remplace par example.com et ca a fonctionne mais j'ai eut un erreur de json error parsing data org.json.jsonException value<!Doctype of type java.lang.string cannot be converted to jsonarray Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 t'es sûr que tu parses du JSON ? parce que DOCTYPE, c'est ce qu'on trouve dans un contenu XML... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 oui mais je parse de json t'as vu le code? y'a pas de xml mais j'ai trouve d'autres personnes qui ont eut cette erreur je vais voir c'est quoi :) merci bcp pour ton aide Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 je vois bien que ton code est fait pour parser du JSON. Ce que je veux dire, vu l'erreur, c'est que le contenu retourné par ton serveur ne semble pas être du JSON, mais plutôt du XML... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 (modifié) non je ne te dis pas que tu n'as pas vu que mon code est pour json!!! mais je te demande si tu as vu d'autre chose peut etre y'avais d'xml et j'ai pas vu c'est ca :) oui moi j'ai vu doctype avec xml mais la je ne sais pas comment il y'a cette erreur.. et j'ai vu cette solution I would get rid of this line: JSONArray jArray = new JSONArray(result); and do this instead: JSONObject json_data = new JSONObject(result); JSONArray nameArray = json_data.names(); JSONArray valArray = json.toJSONArray(nameArray); mais ca na pas marche maintenant ils me disent que tu ne peut pas transformer string a jsonobject c'est de JSONArray jArray = new JSONArray(result); car la on est en train de transformer result qui est declare comme string en jsonobject. mais je ne sais pas comment la fixer.. Modifié 13 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Le problème est de savoir quel est le contenu que tu reçois de ton serveur, afin d'être sûr que c'est bien du JSON; l'erreur que tu indiquais ("error parsing data org.json.jsonException value<!Doctype of type java.lang.string cannot be converted to jsonarray") semble dire que ce n'est pas le cas, et tu auras beau essayer d'instancier un JSONObjet ou un JSONArray, ça ne fonctionnera pas si ce n'est pas à la base du JSON Peux-tu afficher dans les logs le contenu que tu reçois (un Log.d("log_tag", "resultat reçu : " + result); avant le parsing JSON ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 ok je vais essayer et puis je t'afficherai le resultat j'ai recu un code html :P c'est pour ca que j'ai eut un erreur doctype :P alors c'est quoi la solution j'ai eut mal a la tete !! :P mais peut etre que c'est normal? on la trasforme en html pour l'envoyer entre les 2 logiciels? ou non!! car dans le navigateur j'ai eut le resultat sous forme de json Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Si tu avais bien du json dans le navigateur, mais que tu as du html dans ton appli, c'est que tu ne dois pas appeler de la même façon le serveur... As-tu affiché dans le log le résultat de la requête http ? quel est-t'il ? est-ce du json encapsulé dans du html ? ou ... ? 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 je ne sais pas je vais te le montrer excusez moi mais je travaille dans un virtual pc alors ca prend longtemp.. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Tu appelles un serveur sur example.com; mais je suppose que ton serveur n'est pas accessible par cette adresse; il faudrait appeler ton serveur, pas celui de l'exemple... 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
abdallah123 Posté(e) 13 décembre 2011 Auteur Share Posté(e) 13 décembre 2011 (modifié) ah ok je veux essayer oui ca a marche j'ai mis 10.0.2.2 au lieu de 127.0.0.1 :D ah finalement je peux manger merci bcpppppppppppp mais j'ai pas compris pourquoi c'est 10.0.2.2 mais mois j'appele ma machine avec 127.0.0.1 chpil merci bcp j'ai trouve ca :10.0.2.2 Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine) alors merci :) Modifié 13 décembre 2011 par abdallah123 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 14 décembre 2011 Share Posté(e) 14 décembre 2011 Tu avais toutes les explications dans le lien que je t'ai fourni quelques posts plus haut ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.