Enregistrement dans base de donnes

sk -  
 sk -
bonjour
je essayé de faire un programme d'enregistrement
un liste dans la base de donne .
il n'y a aucun erreur au niveau de programme mais il n'enregistre pas dans la base .
merci en avance
voila code en android
package com.example.ecole;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

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.R.integer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract.Data;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class classe extends choisir_classe { 
  choisir_classe C1=new choisir_classe();
  ListView listView;
  Button btnSave;
  TextView t1;
  String EXTRA_CLASSE="user classe";
  ArrayAdapter<assiduite> adapter;
  List<assiduite> list = new ArrayList<assiduite>();
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.assiduite);
         Intent intent = getIntent();
         t1=(TextView)findViewById(R.id.nomClasse);
         listView = (ListView) findViewById(R.id.my_list);
         btnSave = (Button)findViewById(R.id.btnSave);
         t1.setText(intent.getStringExtra(EXTRA_CLASSE));
         adapter = new assiduite_classe(this,getModel());
         listView.setAdapter(adapter);
         btnSave.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 for (int i = 0; i < list.size(); i++) {
                  enregistrer(list.get(i).getName(),list.get(i).isSelected(),list.get(i).getrtard());
                 }
             }    
         });
   }
     private List<assiduite> getModel(){
       final String strURL = "http://10.0.2.2/webservice/slect.php";
          JSONArray  jArray;
          JSONObject  json_data;
       String result =null;
       InputStream is = null;
       StringBuilder sb = new StringBuilder();
       ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair> ();
       nameValuePairs.add(new BasicNameValuePair("c",t1.getText().toString()));
      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());
   } 
   try{
    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
  
    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 in http connection " + e.toString());
   }
   String essai=result.substring(0, 4) ;
   try {
    if (result.matches("<br >")){
      essai=result.substring(0, 2) ; 
    }
       jArray = new JSONArray(result);
       for(int j=0;j<jArray.length();j++){
    json_data=jArray.getJSONObject(j);
    int num=json_data.getInt("num");
    String nom=json_data.getString("nom").toString();
    String prenom=json_data.getString("prenom").toString();
           list.add(new assiduite(num+"   "+nom+" "+prenom));
    }
      }catch(JSONException e){
       //  Log.e("log_tag", "Error parsing data " + e.toString());
       }
    return list;
   }
     private void enregistrer(String name,boolean pre,String ret){
      final String strURL1 = "http://10.0.2.2/webservice/save.php";
      String result1 =null;
         InputStream is1 = null;
         StringBuilder sb1 = new StringBuilder();
         ArrayList<NameValuePair> nameValuePairs=new ArrayList<NameValuePair> ();
         StringTokenizer st = new StringTokenizer(name);
         Toast.makeText(classe.this,(st.nextElement()).toString(), Toast.LENGTH_LONG).show();
         nameValuePairs.add(new BasicNameValuePair("nu",(st.nextElement()).toString()));
         if(pre){
         nameValuePairs.add(new BasicNameValuePair("p","vrai"));}
         else{nameValuePairs.add(new BasicNameValuePair("p","faux"));}
         if((!(pre))&&(ret!= null)){
            nameValuePairs.add(new BasicNameValuePair("a","vrai"));}
            else{nameValuePairs.add(new BasicNameValuePair("a","faux"));}
         nameValuePairs.add(new BasicNameValuePair("r",ret));
         try{
             
          HttpClient httpclient1 = new DefaultHttpClient();
          HttpPost httppost1 = new HttpPost(strURL1);
          httppost1.setEntity(new UrlEncodedFormEntity(nameValuePairs));
          HttpResponse response1 = httpclient1.execute(httppost1);
          HttpEntity entity1 = response1.getEntity();
          is1 = entity1.getContent();    
         }catch(Exception e){
    Log.e("log_tag", "Error in http connection " + e.toString());
   } 
   try{
    BufferedReader reader1 = new BufferedReader(new InputStreamReader(is1,"iso-8859-1"),8);
  
    String line1 = null;
    while ((line1 = reader1.readLine()) != null) {
     sb1.append(line1 + "\n");
     
    }
    is1.close();
    result1=sb1.toString();
   
         }catch(Exception e){
       Log.e("log_tag", "Error in http connection " + e.toString());
      }
   String essai1=result1.substring(0, 4) ;
   try {
    if (result1.matches("<br >")){
      essai1=result1.substring(0, 2) ; 
    }
    JSONArray jArray = new JSONArray(result1);
    int b=jArray.length();
       JSONObject json_data = jArray.getJSONObject(0);
     }catch(JSONException e){
      Toast.makeText(classe.this, "l'assiduite enregistre ", Toast.LENGTH_LONG).show();
     }
        }
}


et code php

<?php 
$dat=date('Y-m-d');
$heure=date('H:i:s');
$num1=$_REQUEST['nu'];
$pr1=$_REQUEST['p'];
$ab1=$_REQUEST['a'];
$re1=$_REQUEST['r'];
mysql_connect("localhost","root","");//connecte seveur 
mysql_select_db("ecole");// connecte base de donnes 
$sql=mysql_query("insert into assiduite values ('$dat','$heure','$pr1','$ab1','$re1','$num1');");   
while ($row=mysql_fetch_assoc($sql))//tantque ilya reponse 
 $output[]=$row;//tableau
print(json_encode($output));//  json_encode methode permet de faira  liason entre php et android 
mysql_close();
?>
A voir également:

1 réponse

BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Hello,

Est-ce que la requête http est bien formattée? Est-ce qu'elle part bien? Est-ce que tu la reçois côté serveur? Sous quelle forme?

Voici autant de questions que tu dois te poser avant de dire "ça ne marche pas".

En passant, quelques remarques:
- éviter les valeurs en dur: créer des constantes pour l'url et tes valeurs "vrai", "faux" notamment
-
list.get(i).getName()
si tu n'as pas d'éléments dans ta liste, tu as un beau crash, non?
- si tu as 30000 éléments dans ta liste, tu lances 30000 requêtes!?
- n'hésites pas à mettre des logs et à tester en mode debug
0
sk
 
hello,
-ArrayList<NameValuePair> n'accepte pas le valeur boolean seulement le chaîne pour ça
j'utilise les valeurs "vrai" et"faux"
-qu'elle est la problème de lance plusieurs requête
je suis débutant et je ne comprit pas ces problème
0