Insérer des données à partir d' android dans ma database mysql
katiadja
Messages postés
2
Statut
Membre
-
katiadja Messages postés 2 Statut Membre -
katiadja Messages postés 2 Statut Membre -
Bonjour à tous, d'abord j'aimerais m'excuser si la question a déjà été posée mais depuis je cherche et je ne trouve pas de solution.
j'ai créé une interface utilisateur sur android studio pour que l'utilisateur puisse y insérer son Nom, Prénom, date de naissance etc...
une fois qu'il aura renseigné ces champs je voudrais récupérer ces données et les insérer dans ma base de donnée mysql grâce à PHP.
j'ai donc suivi un tutoriel et le code qui a été proposé est le suivant:
Code :
et j'ai les erreurs suivant sur mon serveur web:
Notice: Undefined index: Nom in C:\wamp\www\test\Register.php on line 6
Notice: Undefined index: Prenom in C:\wamp\www\test\Register.php on line 8
Notice: Undefined index: Datedenaissance in C:\wamp\www\test\Register.php on line 10
Notice: Undefined index: Motdepasse in C:\wamp\www\test\Register.php on line 12
Notice: Undefined index: Nomdutilisateur in C:\wamp\www\test\Register.php on line 14
Notice: Undefined index: Statut in C:\wamp\www\test\Register.php on line 16
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 20
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 22
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\test\Register.php on line 24
voici le contenu de la classe JAVA qui permet de gérer le formulaire
le contenu de la classe ServerRequests associée:
j'ai créé une interface utilisateur sur android studio pour que l'utilisateur puisse y insérer son Nom, Prénom, date de naissance etc...
une fois qu'il aura renseigné ces champs je voudrais récupérer ces données et les insérer dans ma base de donnée mysql grâce à PHP.
j'ai donc suivi un tutoriel et le code qui a été proposé est le suivant:
Code :
<?php
$con=mysqli_connect("localhost","root","","mabase");
$Nom = $_POST["Nom"];
$Prenom = $_POST["Prenom"];
$Datedenaissance = $_POST["Datedenaissance"];
$Motdepasse = $_POST["Motdepasse"];
$Nomdutilisateur = $_POST["Nomdutilisateur"];
$Statut = $_POST["Statut"];
$statement = mysqli_prepare($con, "INSERT INTO User (Nom, Prenom, Datedenaissance, Motdepasse, Nomdutilisateur, Statut) VALUES (?, ?, ?, ?, ?, ?)");
mysql_stmt_bind_param($statement, "ssiss", $Nom, $Prenom, $Datedenaissance, $Motdepasse, $Nomdutilisateur, $Statut);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con);
?>
et j'ai les erreurs suivant sur mon serveur web:
Notice: Undefined index: Nom in C:\wamp\www\test\Register.php on line 6
Notice: Undefined index: Prenom in C:\wamp\www\test\Register.php on line 8
Notice: Undefined index: Datedenaissance in C:\wamp\www\test\Register.php on line 10
Notice: Undefined index: Motdepasse in C:\wamp\www\test\Register.php on line 12
Notice: Undefined index: Nomdutilisateur in C:\wamp\www\test\Register.php on line 14
Notice: Undefined index: Statut in C:\wamp\www\test\Register.php on line 16
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 20
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp\www\test\Register.php on line 22
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in C:\wamp\www\test\Register.php on line 24
voici le contenu de la classe JAVA qui permet de gérer le formulaire
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Register extends ActionBarActivity implements View.OnClickListener {
Button bRegister;
EditText etNom, etPrenom, etDatedenaissance, etNomdutilisateur, etMotdepasse, etStatut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etNom = (EditText) findViewById(R.id.etNom);
etPrenom = (EditText) findViewById(R.id.etPrenom);
etDatedenaissance = (EditText) findViewById(R.id.etDatedenaissance);
etNomdutilisateur = (EditText) findViewById(R.id.etNomdutilisateur);
etMotdepasse = (EditText) findViewById(R.id.etMotdepasse);
etStatut = (EditText) findViewById(R.id.etStatut);
bRegister = (Button) findViewById(R.id.bValider);
bRegister.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.bRegister:
String nom = etNom.getText().toString();
String prenom = etPrenom.getText().toString();
String Nomdutilisateur = etNomdutilisateur.getText().toString();
String Motdepasse = etMotdepasse.getText().toString();
String statut = etStatut.getText().toString();
int Datedenaissance = Integer.parseInt(etDatedenaissance.getText().toString());
break;
}
}
private void registerUser(User user ) {
ServerRequests serverRequests = new ServerRequests(this);
serverRequests.storeUserDataInBackground(user, new GetUserCallback() {
@Override
public void done(User returnedUser) {
Intent logInetent = new Intent(Register.this, enregistrer.class);
startActivity(logInetent);
}
});
}
}
le contenu de la classe ServerRequests associée:
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
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.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import java.util.ArrayList;
public class ServerRequests {
ProgressDialog progressDialog;
public static final int CONNECTION_TIMEOUT = 1000 * 15;
public static final String SERVER_ADDRESS = "[http://localhost:8000/]";
public ServerRequests(Context context) {
progressDialog = new ProgressDialog(context);
progressDialog.setCancelable(false);
progressDialog.setTitle("Processing...");
progressDialog.setMessage("Please wait...");
}
public void storeUserDataInBackground(User user, GetUserCallback userCallBack) {
progressDialog.show();
new StoreUserDataAsyncTask(user, userCallBack).execute();
}
public void fetchUserDataAsyncTask(User user, GetUserCallback userCallBack) {
progressDialog.show();
new fetchUserDataAsyncTask(user, userCallBack).execute();
}
public class StoreUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
User user;
GetUserCallback userCallBack;
public StoreUserDataAsyncTask(User user, GetUserCallback userCallBack) {
this.user = user;
this.userCallBack = userCallBack;
}
@Override
protected Void doInBackground(Void... params) {
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("Nom", user.Nom));
dataToSend.add(new BasicNameValuePair("Prenom", user.Prenom));
dataToSend.add(new BasicNameValuePair("Nomdutilisateur", user.Nomdutilisateur));
dataToSend.add(new BasicNameValuePair("Motdepasse", user.Motdepasse));
dataToSend.add(new BasicNameValuePair("Datedenaissance", user.Datedenaissance + ""));
dataToSend.add(new BasicNameValuePair("Statut", user.Statut));
HttpParams httpRequestParams = getHttpRequestParams();
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS
+ "Register.php");
try {
post.setEntity(new UrlEncodedFormEntity(dataToSend));
client.execute(post);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private HttpParams getHttpRequestParams() {
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams,
CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpRequestParams,
CONNECTION_TIMEOUT);
return httpRequestParams;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
progressDialog.dismiss();
userCallBack.done(null);
}
}
public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, User> {
User user;
GetUserCallback userCallBack;
public fetchUserDataAsyncTask(User user, GetUserCallback userCallBack) {
this.user = user;
this.userCallBack = userCallBack;
}
@Override
protected User doInBackground(Void... params) {
ArrayList<NameValuePair> dataToSend = new ArrayList<>();
dataToSend.add(new BasicNameValuePair("Nomdutilisateur", user.Nomdutilisateur));
dataToSend.add(new BasicNameValuePair("Motdepasse", user.Motdepasse));
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams,
CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpRequestParams,
CONNECTION_TIMEOUT);
HttpClient client = new DefaultHttpClient(httpRequestParams);
HttpPost post = new HttpPost(SERVER_ADDRESS
+ "verification.php");
User returnedUser = null;
try {
post.setEntity(new UrlEncodedFormEntity(dataToSend));
HttpResponse httpResponse = client.execute(post);
HttpEntity entity = httpResponse.getEntity();
String result = EntityUtils.toString(entity);
JSONObject jObject = new JSONObject(result);
if (jObject.length() != 0){
Log.v("happened", "2");
String Nom = jObject.getString("Nom");
String Prenom = jObject.getString("Prenom");
String Statut = jObject.getString("Statut");
int Datedenaissance = jObject.getInt("Datedenaissance");
returnedUser = new User(Nom, Prenom, Datedenaissance, user.Nomdutilisateur, user.Motdepasse, Statut);
}
} catch (Exception e) {
e.printStackTrace();
}
return returnedUser;
}
@Override
protected void onPostExecute(User returnedUser) {
super.onPostExecute(returnedUser);
progressDialog.dismiss();
userCallBack.done(returnedUser);
}
}
}
| EDIT : Ajout du LANGAGE dans les balises de code.
Explications disponibles ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Insérer des données à partir d' android dans ma database mysql
- Insérer vidéo dans powerpoint - Guide
- Android recovery - Guide
- Effacer les données de navigation sur android - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- À quoi sert google drive sur android - Guide
mais ça ne marche toujours pas. Ensuite pour la méthode RegisterUser() c'est la partie là:
et il appelle la classe ServerRequests
En fait j'aimerai d'abords résoudre ce problème avant d'insérer les vérification.
Quitte à utiliser , autant faire un echo d'un message d'erreur pour ne pas oublier...