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

API standards et tierces Android Discussion :

Connexion MySQL en utilisant PHP


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut Connexion MySQL en utilisant PHP
    Bonjour,
    Je recherche un tutos qui fonctionne et si possible assez bien détaillé en utilisant json

    J'ai essayé ce tutos mais l'application s'arrête tout de suite. D'après ce que je comprend il plante d'à partir de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setContentView(R.layout.main);
    donc quasiment au début

    Si vous arrivez à le faire fonctionner merci de me prévenir pour qu'on puisse échanger

    Drick

  2. #2
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Bonjour Drick,

    As tu écrit le fichier layout correspondant (à savoir main.xml dans ton cas) ?

    Quel est le message d'erreur ?

  3. #3
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Encore une fois un tuto complètement bugué niveau lecture de la réponse HTTP....

    Que se passe-t-il si on arrive pas à se connecter au serveur HTTP ? ben rien... on continue comme si de rien n'était avec un InputStream à null => bim NullPointerException qu'on ne voit quasiment pas (catchée un peu plus loin) et re-bim nouvelle NPE....

    Sans compter que le code DOIT être fait dans un thread à part (AsyncTask ou autre solution), et donc certainement pas dans le onCreate !

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut
    merci pour vos réponses, d'après ce que je lis, il y a plein de tutos remplient de bugs, pas évident pour un novice.

    J'ai pris un autre script, il plante pas comme l'autre, il n'affiche pas les résultats, il affiche juste le qui est la cible "http://www.construction-materiaux.com/city.php.

    Pourquoi aucun résultat s'affiche?
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    package com.list;
     
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    public class MainActivity 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);  
     
    		// Définir le texte et appeler la fonction de connexion.  
    		txt.setText("Connexion..."); 
    		// Appeler la méthode pour récupérer les données JSON
    		txt.setText(getServerData(strURL)); 
    	}
     
    	// Mettre l'adresse du script PHP
    	// Attention localhost ou 127.0.0.1 ne fonctionnent pas. Mettre l'adresse IP local.
    	public static final String strURL = "http://www.construction-materiaux.com/city.php";
     
    	private String getServerData(String returnString) {
    		InputStream is = null;
    		String result = "";
    		// Envoyer la requête au script PHP.
    		// Script PHP : $sql=mysql_query("select * from tblVille where Nom_ville like '".$_REQUEST['ville']."%'");
    		// $_REQUEST['ville'] sera remplacé par L dans notre exemple.
    		// Ce qui veut dire que la requête enverra les villes commençant par la lettre L
    		ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    		nameValuePairs.add(new BasicNameValuePair("nom_lot","N"));
     
     
    		// Envoie de la commande http
    		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());
    		}
    		// 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: "+json_data.getInt("id")+
    						", nom_lot: "+json_data.getString("nom_lot")
    				);
    				// 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 fichier city.php donne bien des résultats en allant dessus (le nom du fichier ne correspond pas à des villes, c'est normal, c'est un test):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"id":"1","nom_lot":"Parquet"},{"id":"2","nom_lot":" Nouveau article"},{"id":"3","nom_lot":"VRD - Terrassement"},{"id":"4","nom_lot":"Gros-oeuvre"},{"id":"5","nom_lot":" Nouveau article"},{"id":"6","nom_lot":" Nouveau article"},{"id":"7","nom_lot":" Nouveau article"},{"id":"8","nom_lot":"Parquet x"},{"id":"9","nom_lot":"Parquet x 2"},{"id":"10","nom_lot":" Nouveau article"},{"id":"11","nom_lot":" Nouveau article"},{"id":"12","nom_lot":" Nouveau article"},{"id":"13","nom_lot":" Nouveau article"},{"id":"24","nom_lot":"Quincaillerie b"},{"id":"34","nom_lot":"Quincaillerie"},{"id":"39","nom_lot":"Parquet contrecoll"}]

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Par défaut
    message d'erreur dans la logcat : android.os.NetworkOnMainThreadException

  6. #6
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par drick35 Voir le message
    message d'erreur dans la logcat : android.os.NetworkOnMainThreadException
    Nicroman, tu as un client ! tu lui expliques ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. [MySQL] Problème de connexion MySQL avec script PHP
    Par alen22 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/08/2012, 10h42
  2. est-il possible d'utiliser Mysql et du php sur un cd-rom??
    Par swan dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/05/2011, 16h23
  3. [PHP] Pb de connexion mysql en local
    Par DonJR dans le forum Installation
    Réponses: 1
    Dernier message: 17/05/2006, 14h03
  4. [Hibernate] utilisation de JNDI pour connexion MySql
    Par michaelbob dans le forum Hibernate
    Réponses: 1
    Dernier message: 14/03/2006, 16h08
  5. Erreur connexion MySQL-PHP
    Par specialfox dans le forum Installation
    Réponses: 3
    Dernier message: 27/09/2005, 19h47

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