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 :

Lier Android MySQL


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Lier Android MySQL
    Bonjour,


    Categorie.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
     
    package com.test.projetfinal;
    import android.widget.ImageView;
     
    import java.util.ArrayList;
    import java.util.List;
     
    /**
     * Created by User on +-19/02/2017.
     */
     
    public class Categorie {
        private String nom;
        private int idLogo;
        private ArrayList sousCats;
        // todo Color catégorie
        public Categorie(String nom,int idLogo){
            this.nom = nom;
            this.idLogo = idLogo;
            sousCats = new ArrayList();
        }
     
        public void addCat(Categorie sousCat){sousCats.add(sousCat);
        }
     
        public String getNom() {
            return nom;
        }
     
        public int getIdLogo() {
            return idLogo;
        }
     
        public ArrayList getSousCats() {
            return sousCats;
        }
    }


    CategorieAdapter.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
     
    package com.test.projetfinal;
     
     
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.ListView;
    import android.widget.TextView;
    import java.util.ArrayList;
    import java.util.List;
     
    /**
     * Created by User on 18/02/2017.
     */
     
    public class CategorieAdapter extends ArrayAdapter<Categorie> {
        ListView listView;
     
        public CategorieAdapter(Context context, List categories,ListView mListView){
            super(context,0,categories);
            listView = mListView;
     
     
        }
        public View getView(int position,View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_categorie,parent,false);
            }
     
            CategorieViewHolder viewHolder = (CategorieViewHolder) convertView.getTag();
            if (viewHolder == null) {
                // récupére le nom du Categorie ou de la catégorie
                viewHolder = new CategorieViewHolder();
                viewHolder.categorie = (LinearLayout) convertView.findViewById(R.id.categorie);
                viewHolder.nom = (TextView) convertView.findViewById(R.id.nom);
                viewHolder.logo = (ImageView) convertView.findViewById(R.id.logo);
     
                convertView.setTag(viewHolder);
            }
     
            final Categorie categorie = getItem(position);
     
            viewHolder.nom.setText(categorie.getNom());
            viewHolder.categorie.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    ArrayList<Categorie> sousCats = categorie.getSousCats();
     
                    // afficher dans la vue actuel
                    listView.setAdapter(new CategorieAdapter(getContext(),sousCats,listView));
     
                }
            });
     
            return convertView;
        }
    }

    CategorieViewHolder.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
     
    package com.test.projetfinal;
     
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
     
    /**
     * Created by User on 18/02/2017.
     */
     
    public class CategorieViewHolder {
        public LinearLayout categorie;
        public TextView nom;
        public ImageView logo;
     
    }


    MainActivity.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
    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
     
    package com.test.projetfinal;
     
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.ListView;
     
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    public class MainActivity extends AppCompatActivity {
     
        ListView mListView;
        public List categories;
        public CategorieAdapter adapter;
        RequestQueue requestQueue;
        String showUrl = "http://192.168.1.87/Php/showCategorie.php";
        ArrayList T_alimentaire_description = new ArrayList();
        ArrayList T_alimentaire = new ArrayList();
        String T1[] = new String[14];
     
     
     
     
     
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mListView = (ListView) findViewById(R.id.listView);
            categories = genererCategorie(null);
            adapter = new CategorieAdapter(MainActivity.this, categories, mListView);
            mListView.setAdapter(adapter);
     
        }
     
        private ArrayList genererCategorie(ArrayList sousCats) {
            if (sousCats != null) {
                return sousCats;
            }
            ArrayList categories = new ArrayList();
     
            Categorie alimentaire = new Categorie("Alimentation"+T1[0],R.mipmap.ic_launcher);
     
     
     
            String T_alimentaire_description[] = {"Alimentation Générale","Boucheries - Charcuteries - Traiteurs","Boulangeries - Patisseries","Cavistes","Chocolateries - Confiseries - Glacier - Torréfaction - Thés","Fromageries","Produits diététiques, biologiques, naturels"};
            String T_alimentaire[] = {"alimgene","boucherie","boulangerie","cavistes","chocolaterie","formagerie","dietetique"};
     
     
            // ALIMENTAIRE
            //----------------------------------------------------------------------------------------------------//
     
            Map<String,Categorie> categories1 = new HashMap<String,Categorie>();
            for (int i =0; i<T_alimentaire.length; i++){
                String key = T_alimentaire[i];
                String desc = T_alimentaire_description[i];//+T1[i];
                Categorie value = new Categorie(desc,R.mipmap.ic_launcher);
                categories1.put(key, value);
                alimentaire.addCat(categories1.get(key));
            }
     
     
            // Animaux Fleuriste Jardin
            Categorie animauxFleu = new Categorie("Animaux - Fleuristes - Jardin",R.mipmap.ic_launcher);
     
            Categorie animaux = new Categorie("Animaux",R.mipmap.ic_launcher);
            Categorie fleuristes = new Categorie("Fleuristes",R.mipmap.ic_launcher);
            Categorie jardin = new Categorie("Jardin",R.mipmap.ic_launcher);
     
            animauxFleu.addCat(animaux);
            animauxFleu.addCat(fleuristes);
            animauxFleu.addCat(jardin);
     
     
            // Batiments Immobilier
            Categorie batimmo = new Categorie("Batiments - Immobilier",R.mipmap.ic_launcher);
     
     
     
            //Beauté - Bien être
            Categorie beautebienetre = new Categorie("Beauté - Bien-être",R.mipmap.ic_launcher);
     
     
     
            //Café Tabac Presse
            Categorie cafetabacpresse = new Categorie("Café - Tabac - Presse",R.mipmap.ic_launcher);
     
     
     
            //Finances
            Categorie finances = new Categorie("Finances",R.mipmap.ic_launcher);
     
     
     
            //Hébergement - Restauration
            Categorie hebergResto = new Categorie("Hébergement - Restauration",R.mipmap.ic_launcher);
     
     
     
            //Loisirs
            Categorie loisirs = new Categorie("Loisirs",R.mipmap.ic_launcher);
     
     
     
            //Maison Bricolage Déco
            Categorie bricodeco = new Categorie("Maison - Bricolage - Déco",R.mipmap.ic_launcher);
     
     
     
            //Mode
            Categorie mode = new Categorie("Mode",R.mipmap.ic_launcher);
     
     
     
            //Multimédia
            Categorie multimédia = new Categorie("Multimédia",R.mipmap.ic_launcher);
     
     
     
            //Santé
            Categorie sante = new Categorie("Santé",R.mipmap.ic_launcher);
     
     
     
            //Transport Vehicule
            Categorie transpovehic = new Categorie("Transports - Véhicules",R.mipmap.ic_launcher);
     
     
     
            //Autres
            Categorie autres = new Categorie("Autres",R.mipmap.ic_launcher);
     
     
     
            //Compilation
            categories.add(alimentaire);
            categories.add(animauxFleu);
            categories.add(batimmo);
            categories.add(beautebienetre);
            categories.add(cafetabacpresse);
            categories.add(finances);
            categories.add(hebergResto);
            categories.add(loisirs);
            categories.add(bricodeco);
            categories.add(mode);
            categories.add(multimédia);
            categories.add(sante);
            categories.add(transpovehic);
            categories.add(autres);
     
            return categories;
        }
    }

    activity_main.xml
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.test.projetfinal.MainActivity"
        android:background="#346789">
     
        <ListView
            android:id="@+id/listView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:dividerHeight="20dp"
            android:background="#346789"
            >
     
        </ListView>
    </LinearLayout>

    build.gradle
    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
     
    apply plugin: 'com.android.application'
     
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
        defaultConfig {
            applicationId "com.test.projetfinal"
            minSdkVersion 15
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
     
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile 'com.android.support:appcompat-v7:25.1.0'
        testCompile 'junit:junit:4.12'
        compile 'com.mcxiaoke.volley:library:1.0.19'
     
    }
    showCategorie.php
    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
     
    <?php
     
    if($_SERVER["REQUEST_METHOD"]=="POST"){
    	include 'connection.php';
    	showStudent();
    }
     
    function showStudent()
    {
    	global $connect;
     
    	$query = " SELECT * FROM categoriessql; ";
     
    	$result = mysqli_query($connect, $query);
    	$number_of_rows = mysqli_num_rows($result);
     
    	$temp_array  = array();
     
    	if($number_of_rows > 0) {
    		while ($row = mysqli_fetch_assoc($result)) {
    			$temp_array[] = $row;
    		}
    	}
     
    	header('Content-Type: application/json');
    	echo json_encode(array("etudiants"=>$temp_array));
    	mysqli_close($connect);
     
    }
    connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    define('hostname', 'localhost');
    define('user', 'root');
    define('password', 'root');
    define('databaseName', 'tutorial');
     
     
    $connect = mysqli_connect(hostname, user, password, databaseName);
     
    ?>

    tutorial.sql
    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
     
    -- phpMyAdmin SQL Dump
    -- version 4.5.4.1
    -- http://www.phpmyadmin.net
    --
    -- Client :  localhost
    -- Généré le :  Sam 01 Avril 2017 à 21:11
    -- Version du serveur :  5.7.11
    -- Version de PHP :  5.6.18
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
     
    --
    -- Base de données :  `tutorial`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `categoriessql`
    --
     
    CREATE TABLE `categoriessql` (
      `nom` varchar(50) NOT NULL,
      `description` varchar(50) NOT NULL,
      `id_categorie` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `categoriessql`
    --
     
    INSERT INTO `categoriessql` (`nom`, `description`, `id_categorie`) VALUES
    ('alimgene', 'Alimentation Générale', 1),
    ('boucherie', 'Boucheries - Charcuteries - Traiteurs', 2),
    ('boulangerie', 'Boulangeries - Patisseries', 3),
    ('cavistes', 'Cavistes', 4),
    ('chocolaterie', 'Chocolateries - Confiseries - Glacier - Torréfaction - Thés', 5),
    ('formagerie', 'Fromageries', 6),
    ('dietetique', 'Produits diététiques, biologiques, naturels', 7),
     
    -- --------------------------------------------------------
     
    -
    --
    -- Index pour la table `categoriessql`
    --
    ALTER TABLE `categoriessql`
      ADD PRIMARY KEY (`id_categorie`);
     
    --
    -- AUTO_INCREMENT pour la table `categoriessql`
    --
    ALTER TABLE `categoriessql`
      MODIFY `id_categorie` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;


    Je suis en train d'essayer de faire une application qui trierai des commerces par catégories.
    En gros on arrive sur l'appli, on a X catégories, puis chaque catégorie a X catégories, etc jusqu'à arriver à chaque commerce.

    La partie sur les catégories est déjà faite (on est plusieurs à faire l'appli, du coup c'est pas moi qui ai fait cette partie), et maintenant j'aimerai m'occuper de la partie qui concerne le lien entre l'appli et la base de donnée.


    Je me suis aidé d'un tutoriel (que voici :)


    Et j'ai essayé de l'adapter à ce que je dois faire, comme ceci :

    MainActivity.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
    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
     
    package com.test.projetfinal;
     
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.ListView;
     
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;
     
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    public class MainActivity extends AppCompatActivity {
     
        ListView mListView;
        public List categories;
        public CategorieAdapter adapter;
        RequestQueue requestQueue;
        String showUrl = "http://192.168.1.87/Php/showCategorie.php";
        ArrayList T_alimentaire_description = new ArrayList();
        ArrayList T_alimentaire = new ArrayList();
     
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mListView = (ListView) findViewById(R.id.listView);
     
     
            requestQueue = Volley.newRequestQueue(getApplicationContext());
     
            JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
                    showUrl, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
     
                    System.out.println(response.toString());
                    try {
                        JSONArray etudiants = response.getJSONArray("etudiants");
     
                        Map<String, Categorie> categories1 = new HashMap<String, Categorie>();
     
                        for (int i = 0; i < etudiants.length(); i++) {
                            JSONObject categoriessql = etudiants.getJSONObject(i);//i
     
                            String nom = categoriessql.getString("nom");
                            String description = categoriessql.getString("description");
                        }
     
                    } catch (JSONException e) {
                        e.printStackTrace();
     
                    }
     
                    categories = genererCategorie(null);
                    adapter = new CategorieAdapter(MainActivity.this, categories, mListView);
                    mListView.setAdapter(adapter);
     
     
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    System.out.append(error.getMessage());
     
                }
            });
            requestQueue.add(jsonObjectRequest);
     
            categories = genererCategorie(null);
            adapter = new CategorieAdapter(MainActivity.this, categories, mListView);
            mListView.setAdapter(adapter);
     
        }
    //---------------------------------------------------
     
     
     
     
        private ArrayList genererCategorie(ArrayList sousCats) {
            if (sousCats != null) {
                return sousCats;
            }
            ArrayList categories = new ArrayList();
     
            Categorie alimentaire = new Categorie("Alimentation",R.mipmap.ic_launcher);
     
     
            Map<String,Categorie> categories1 = new HashMap<String,Categorie>();
            for (int i =0; i<T_alimentaire.size(); i++){
                String key = (String)T_alimentaire.get(i);
                String desc = (String)T_alimentaire_description.get(i);
                Categorie value = new Categorie(desc,R.mipmap.ic_launcher);
                categories1.put(key, value);
                alimentaire.addCat(categories1.get(key));
            }
     
            //Categorie match = new Categorie("Match",R.mipmap.ic_launcher);
            //categories1.get("alimgene").addCat(match);
     
     
            // Animaux Fleuriste Jardin
            Categorie animauxFleu = new Categorie("Animaux - Fleuristes - Jardin",R.mipmap.ic_launcher);
     
            Categorie animaux = new Categorie("Animaux",R.mipmap.ic_launcher);
            Categorie fleuristes = new Categorie("Fleuristes",R.mipmap.ic_launcher);
            Categorie jardin = new Categorie("Jardin",R.mipmap.ic_launcher);
     
            animauxFleu.addCat(animaux);
            animauxFleu.addCat(fleuristes);
            animauxFleu.addCat(jardin);
     
     
            // Batiments Immobilier
            Categorie batimmo = new Categorie("Batiments - Immobilier",R.mipmap.ic_launcher);
     
     
     
            //Beauté - Bien être
            Categorie beautebienetre = new Categorie("Beauté - Bien-être",R.mipmap.ic_launcher);
     
     
     
            //Café Tabac Presse
            Categorie cafetabacpresse = new Categorie("Café - Tabac - Presse",R.mipmap.ic_launcher);
     
     
     
            //Finances
            Categorie finances = new Categorie("Finances",R.mipmap.ic_launcher);
     
     
     
            //Hébergement - Restauration
            Categorie hebergResto = new Categorie("Hébergement - Restauration",R.mipmap.ic_launcher);
     
     
     
            //Loisirs
            Categorie loisirs = new Categorie("Loisirs",R.mipmap.ic_launcher);
     
     
     
            //Maison Bricolage Déco
            Categorie bricodeco = new Categorie("Maison - Bricolage - Déco",R.mipmap.ic_launcher);
     
     
     
            //Mode
            Categorie mode = new Categorie("Mode",R.mipmap.ic_launcher);
     
     
     
            //Multimédia
            Categorie multimédia = new Categorie("Multimédia",R.mipmap.ic_launcher);
     
     
     
            //Santé
            Categorie sante = new Categorie("Santé",R.mipmap.ic_launcher);
     
     
     
            //Transport Vehicule
            Categorie transpovehic = new Categorie("Transports - Véhicules",R.mipmap.ic_launcher);
     
     
     
            //Autres
            Categorie autres = new Categorie("Autres",R.mipmap.ic_launcher);
     
     
     
            //Compilation
            categories.add(alimentaire);
            categories.add(animauxFleu);
            categories.add(batimmo);
            categories.add(beautebienetre);
            categories.add(cafetabacpresse);
            categories.add(finances);
            categories.add(hebergResto);
            categories.add(loisirs);
            categories.add(bricodeco);
            categories.add(mode);
            categories.add(multimédia);
            categories.add(sante);
            categories.add(transpovehic);
            categories.add(autres);
     
            return categories;
        }
     
    }


    Mais pas moyen,cela ne fonctionne pas.

    J'ai cherché d'autres méthodes mais il y a tellement de choses différentes sur internet concernant le lien android/MySQL, que c'est plutôt compliqué (surtout que je suis plutôt débutant en java)

    Je me doute bien que cela va être compliqué de m'aider, parce qu'il y a pas mal de code, et ma question pas très précise, mais j'essaye quand même ^^

    Merci de votre aide,
    Bonne soirée,
    Bromy

    (Si jamais je met le lien github du projet : https://github.com/Bromy74/Projet.git)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Si cela peut t'aider. J'utilise Sqlite dans mes programmes et tout marche bien.
    C'est un exemple que j'ai trouvé sur le net. Bien sur, çà traite d'un base "Contacts" mais facile à adapter.

    Je n'y suis jamais arrivé avec Mysql, mais çà doit être possible

    Bernard

    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    package com.survey.trike.myapplication;
     
     
    import java.util.ArrayList;
    import java.util.List;
     
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.os.Environment;
    import android.widget.Toast;
     
    public class DatabaseHandler extends SQLiteOpenHelper {
     
    	// All Static variables
    	// Database Version
    	private static final int DATABASE_VERSION = 1;
     
    	// Database Name
    	private static final String DATABASE_NAME = "ListeAppli";
    	//private static final String DB_PATH = "/storage/extSdCard/Documents/";
    	private static String DB_PATH = Environment.getExternalStorageDirectory().toString()+"/Documents/";
    	// Contacts table name
    	private static final String TABLE_CONTACTS = "contacts";
     
    	// Contacts Table Columns names
    	private static final String KEY_ID = "id";
    	private static final String KEY_NAME = "name";
    	private static final String KEY_PH_NO = "phone_number";
     
    	public DatabaseHandler(Context context) {
    		super(context, DATABASE_NAME, null, DATABASE_VERSION);
    	}
     
    	// Creating Tables
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
    				+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
    				+ KEY_PH_NO + " TEXT" + ")";
    		db.execSQL(CREATE_CONTACTS_TABLE);
    	}
     
    	// Upgrading database
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		// Drop older table if existed
    		db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
     
    		// Create tables again
    		onCreate(db);
    	}
     
    	/**
             * All CRUD(Create, Read, Update, Delete) Operations
             */
     
    	// Adding new contact
    	void addContact(Contact contact) {
    		SQLiteDatabase db = this.getWritableDatabase();
     
    		ContentValues values = new ContentValues();
    		values.put(KEY_NAME, contact.getName()); // Contact Name
    		values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone
     
    		// Inserting Row
    		db.insert(TABLE_CONTACTS, null, values);
    		db.close(); // Closing database connection
    	}
     
    	// Getting single contact
    	Contact getContact(int id) {
    		SQLiteDatabase db = this.getReadableDatabase();
     
    		Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
    				KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
    				new String[] { String.valueOf(id) }, null, null, null, null);
    		if (cursor != null)
    			cursor.moveToFirst();
     
    		Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
    				cursor.getString(1), cursor.getString(2));
    		// return contact
    		return contact;
    	}
     
    	// Getting All Contacts
    	public List<Contact> getAllContacts() {
    		List<Contact> contactList = new ArrayList<Contact>();
    		// Select All Query
    		String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
     
    		SQLiteDatabase db = this.getWritableDatabase();
    		Cursor cursor = db.rawQuery(selectQuery, null);
     
    		// looping through all rows and adding to list
    		if (cursor.moveToFirst()) {
    			do {
    				Contact contact = new Contact();
    				contact.setID(Integer.parseInt(cursor.getString(0)));
    				contact.setName(cursor.getString(1));
    				contact.setPhoneNumber(cursor.getString(2));
    				// Adding contact to list
    				contactList.add(contact);
    			} while (cursor.moveToNext());
    		}
     
    		// return contact list
    		return contactList;
    	}
     
    	// Updating single contact
    	public int updateContact(Contact contact) {
    		SQLiteDatabase db = this.getWritableDatabase();
     
    		ContentValues values = new ContentValues();
    		values.put(KEY_NAME, contact.getName());
    		values.put(KEY_PH_NO, contact.getPhoneNumber());
     
    		// updating row
    		return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
    				new String[] { String.valueOf(contact.getID()) });
    	}
     
    	// Deleting single contact
    	public void deleteContact() {
    		SQLiteDatabase db = this.getWritableDatabase();
    		//db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
    		//		new String[] { String.valueOf(contact.getID()) });
    		db.execSQL("delete from "+ TABLE_CONTACTS);
    		db.close();
    	}
     
    	// Getting contacts Count
    	public int getContactsCount() {
    		String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
    		SQLiteDatabase db = this.getReadableDatabase();
    		Cursor cursor = db.rawQuery(countQuery, null);
    		cursor.close();
     
    		// return count
    		return cursor.getCount();
    	}
     
    }

    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
    package com.survey.trike.myapplication;
     
     
    public class Contact {
     
    	//private variables
    	int _id;
    	String _name;
    	String _phone_number;
     
    	// Empty constructor
    	public Contact(){
     
    	}
    	// constructor
    	public Contact(int id, String name, String _phone_number){
    		this._id = id;
    		this._name = name;
    		this._phone_number = _phone_number;
    	}
     
    	// constructor
    	public Contact(String name, String _phone_number){
    		this._name = name;
    		this._phone_number = _phone_number;
    	}
    	// getting ID
    	public int getID(){
    		return this._id;
    	}
     
    	// setting id
    	public void setID(int id){
    		this._id = id;
    	}
     
    	// getting name
    	public String getName(){
    		return this._name;
    	}
     
    	// setting name
    	public void setName(String name){
    		this._name = name;
    	}
     
    	// getting phone number
    	public String getPhoneNumber(){
    		return this._phone_number;
    	}
     
    	// setting phone number
    	public void setPhoneNumber(String phone_number){
    		this._phone_number = phone_number;
    	}
    }
    Et pour l’exécution (petit exemple)
    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
    Contact contact = new Contact();
    String databasePath = getDatabasePath("ListeAppli").getPath();
    ArrayList<String> maListe = new ArrayList<String>();
     
    package com.survey.trike.myapplication;
     
    import android.content.Intent;
    import android.content.pm.ApplicationInfo;
    import android.content.pm.PackageManager;
    import android.os.Bundle;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
     
    import org.apache.commons.io.IOUtils;
     
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.ArrayList;
    import java.util.List;
     
    //import java.lang.*;
     
     
    public class MainActivity extends AppCompatActivity {
     
        public String strall;
        public String ListeAppli = "";
        ListView listView;
        TextView tv1;
        private ArrayList<String> values;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
     
     
            List<Contact> contacts = db.getAllContacts();
            for (
                    Contact cn : contacts) {
                String log = "Id: " + cn.getID() + " ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
                // Writing Contacts to log
                strall = cn.getName();
                EditText tonEdit = (EditText) findViewById(R.id.listeappli);
                tonEdit.getText().toString();
                tonEdit.setText(strall);
                //Toast.makeText(getApplicationContext(), "ApèsLectureDB:"+log,Toast.LENGTH_LONG).show();;
            }
    }
    Et les permissions dans AndroidManifest.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"></uses-permission>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Comme la base de données est créée en local (on ne peut pas donner un autre emplacement, j'utilise ce code pour faire une sauvegarde :

    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
            File inputfile = new File(databasePath);
            File outputfile = new File(Environment.getExternalStorageDirectory() + File.separator +"Documents/contactsManager.sqlite");
     
     
     
     
        public void copyFile(File src, File dst) {
            //Toast.makeText(getApplicationContext(), "src:" + src, Toast.LENGTH_LONG).show();
            //Toast.makeText(getApplicationContext(), "dst:" + dst, Toast.LENGTH_LONG).show();
            InputStream in = null;
            OutputStream out = null;
            try {
                in = new FileInputStream(src);
                out = new FileOutputStream(dst);
                IOUtils.copy(in, out);
            } catch (IOException ioe) {
                Toast.makeText(getApplicationContext(), "ERREUR:" + ioe, Toast.LENGTH_LONG).show();
            } finally {
                IOUtils.closeQuietly(out);
                IOUtils.closeQuietly(in);
            }
        }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Ok je vais regarder merci !
    Si quelqu'un a une solution pour MySQL je suis quand même preneur

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Pour Mysql, tu peux aussi regarder du coté de MariaDB. C'est un serveur Mysql qui fonctionne sous Android auquel tu peux soumettre tes requêtes.
    C'est un serveur gratuit et qui contient une Api pour communiquer.
    Pour le télécharger, il faut aller sur leur site. Pour avoir l'Api, il faut télécharger le source du serveur et dans le source, il y a des exemples d'utilisation.
    Bon courage,
    Bernard

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Attention de ne pas donner le login/password en clair dans le code.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  7. #7
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Bernard74, pourquoi l'orientes-tu vers une base locale, alors qu'il travaille clairement sur une base distante ? cela n,'a rien à voir et va l'embrouiller.
    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

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 49
    Points : 49
    Points
    49
    Par défaut
    Oui exact, j'avais mal lu la recherche.
    J'ai un exemple complet que j'ai trouvé sur internet

    Bernard
    Fichiers attachés Fichiers attachés

  9. #9
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Si l'URL http://192.168.1.87/Php/showCategorie.php renvoie un JSON correct, utilises ce générateur de code : http://gendroid.univ-pau.fr/remoteDatabase.html

    Avec ce code, tu devrais les voir apparaître dans une ListView. Ensuite, tu pourras avancer dans ton projet.
    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

  10. #10
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Oui le JSON est correct.
    En fait le problème, c'est que mes catégories se génèrent avant que la méthode onResponse (qui fait le lien avec la BDD) ne s'exécute.
    Donc du coup, mes catégories ne prennent pas en compte les infos qui viennent de la BDD.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Personne peut apporter d'autres éléments pour m'aider svp :/ ?

  12. #12
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Pas le temps de passer en revue ton code, qui a probablement un soucis dans sa structure. Je t'ai proposée une autre version générée par genDroid. Ca prend 2 secondes et au moins ca permet d'avancer un peu.
    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

  13. #13
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Ton lien me sort rien quand je met l'ip de ma base de donnée dedans. (ça mouline pendant quelques minutes et à la fin ça affiche : "Oups ... Something goes wrong !")
    Et surtout que moi je ne m'occupe que de la partie mysql, ce n'est pas moi qui est fait l'autre partie du code qui génere les catégories de mon application. (on travaille à plusieurs)
    Mais je comprends que tu n'es pas le temps de passer le code en revue, merci quand même pour ton aide !

  14. #14
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    C'est sûr qu'avec http://192.168.1.87/Php/showCategorie.php ca ne risque pas de marcher: ce n'est pas une URL publique... A toi de la rendre publique.
    D'ailleurs, à tout les coups, c'est aussi le problème que tu rencontres dans ton projet actuel. La seule solution est que ton smartphone et ton serveur soit sur le même réseau local. Mais ceci n'est pas une situation réaliste.
    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

  15. #15
    Membre à l'essai
    Homme Profil pro
    Lyceen
    Inscrit en
    Novembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lyceen
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Non, j'utilise un emulateur android, donc le smartphone et la BDD sont bien sur le même serveur en local
    Du coup comment je dois héberger ma BDD en ligne pour pouvoir tester ton site ?

    Et toute façon j'arrive très bien à afficher les données de ma BDD lorsque j'utilise un textview classique, sauf que lorsque j'essaye de l'adapter à mon projet, cela ne fonctionne pas parce que mes catégories se créent avant que la méthode onReponse s'exécute.

  16. #16
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Même problème
    Hello!
    J'ai quasi le même problème..

    J'ai créé une bdd mysql, accessible en local.

    Ensuite, j'ai un script PHP qui encode les donnée en JSON.

    Depuis Android Studio, j'essaie d'accéder à ces données grâce à la librairie Volley, mais impossible. Le onResponse ne s'exécute pas, y'a rien à faire.

    Donc si quelqu'un a une solution, un tuto, une piste, n'importe quoi, je suis preneuse!

    Bonne journée à tous !

    Je met quand même mon code ici ^^


    le showPerson.php -->
    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
    <?php
     
    	require 'connection.php';
     
     
    		$reponse = $bdd->query("select * from personnes; "); // Requete SQL
    		$reponse->setFetchMode(PDO::FETCH_OBJ);
     
     
    		$temp_array = array();
    		while($donnee=$reponse->fetch())
    		{
    			array_push($temp_array, $donnee);
    		}
     
    		header('Content-Type: application/json');
    		json_encode(array("personnes"=>$temp_array));
     
    ?>
    Ce que ça m'affiche:
    {"personnes":[{"idPersonne":"1","prenomPersonne":"Camille","noTelephonePersonne":"792446841"},{"idPersonne":"2","prenomPersonne":"Ava","noTelephonePersonne":"767853434"},{"idPersonne":"3","prenomPersonne":"Paula","noTelephonePersonne":"98734927"}]}


    Et mon code Java Android -->
    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
    btnShow.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
                    //txtAffiche.setText("");
                    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showURL, null, new Response.Listener<JSONObject>() {
     
                        @Override
                        public void onResponse(JSONObject response) {
                            Log.d("Response: ", response.toString());
                            try {
                                JSONArray person = response.getJSONArray("personnes");
                                for (int i = 0; i<person.length(); i++){
                                    JSONObject pers = person.getJSONObject(i);
                                    String name = pers.getString("prenomPersonne");
                                    String noTel = pers.getString("noTelephonePersonne");
     
                                    //txtAffiche.setText("hello");
                                    txtAffiche.append(name + " " + noTel + "\n");
                                }
                            }catch (JSONException e){
                                e.printStackTrace();
                                //Toast.makeText(getApplicationContext(), "marche pas", Toast.LENGTH_LONG).show();
                            }
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                    });
                    requestQueue.add(jsonObjectRequest);
                }
            });

  17. #17
    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
    Salut,

    Citation Envoyé par camTopi Voir le message
    Hello!
    J'ai quasi le même problème..

    J'ai créé une bdd mysql, accessible en local.

    Ensuite, j'ai un script PHP qui encode les donnée en JSON.

    Depuis Android Studio, j'essaie d'accéder à ces données grâce à la librairie Volley, mais impossible. Le onResponse ne s'exécute pas, y'a rien à faire.

    Donc si quelqu'un a une solution, un tuto, une piste, n'importe quoi, je suis preneuse!

    Bonne journée à tous !

    Je met quand même mon code ici ^^


    le showPerson.php -->
    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
    <?php
     
    	require 'connection.php';
     
     
    		$reponse = $bdd->query("select * from personnes; "); // Requete SQL
    		$reponse->setFetchMode(PDO::FETCH_OBJ);
     
     
    		$temp_array = array();
    		while($donnee=$reponse->fetch())
    		{
    			array_push($temp_array, $donnee);
    		}
     
    		json_encode(array("personnes"=>$temp_array));
     
    ?>
    Ce que ça m'affiche:
    {"personnes":[{"idPersonne":"1","prenomPersonne":"Camille","noTelephonePersonne":"792446841"},{"idPersonne":"2","prenomPersonne":"Ava","noTelephonePersonne":"767853434"},{"idPersonne":"3","prenomPersonne":"Paula","noTelephonePersonne":"98734927"}]}


    Et mon code Java Android -->
    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
    btnShow.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
                    //txtAffiche.setText("");
                    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showURL, null, new Response.Listener<JSONObject>() {
     
                        @Override
                        public void onResponse(JSONObject response) {
                            Log.d("Response: ", response.toString());
                            try {
                                JSONArray person = response.getJSONArray("personnes");
                                for (int i = 0; i<person.length(); i++){
                                    JSONObject pers = person.getJSONObject(i);
                                    String name = pers.getString("prenomPersonne");
                                    String noTel = pers.getString("noTelephonePersonne");
     
                                    //txtAffiche.setText("hello");
                                    txtAffiche.append(name + " " + noTel + "\n");
                                }
                            }catch (JSONException e){
                                e.printStackTrace();
                                //Toast.makeText(getApplicationContext(), "marche pas", Toast.LENGTH_LONG).show();
                            }
                        }
                    }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                        }
                    });
                    requestQueue.add(jsonObjectRequest);
                }
            });
    Tu peux nous montrer :
    • L'url que tu utilises pour accéder à ton serveur?
    • Comment tu déclare l'objet requestQueue


    Remarques :
    • Je pense que, d'après ton script php, côté android tu devrais plutôt utiliser la méthode Request.Method.GET au lieu de Request.Method.POST
    • Dans ton script php, supprime la ligne header('Content-Type: application/json'); car depuis android tu n'envoies pas des header dans ta requête



    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. [MySQL] lien récupération Mysql et passage de paramètres
    Par No3l_tek dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/05/2008, 10h51
  2. Lien ODBC Mysql-Arcmap 9.1
    Par sscouby dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 22/02/2008, 12h27
  3. [MySQL] reconnaitre un lien php mysql
    Par tondeuz dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 14/06/2007, 17h14
  4. affichage de liens avec MySQL
    Par Jasmine80 dans le forum SGBD
    Réponses: 8
    Dernier message: 08/11/2006, 16h15
  5. créer un lien dans mysql
    Par veulemans dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/04/2006, 17h24

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