J'espère que vous pourrez m'éclairer. Je travaille sur un projet Android Capstone qui se connecte à une base de données MySQL via php et phpMyAdmin. J'essaie de passer trois paramètres (childId, date1 et date5) depuis Android vers le script php script et ça ne marche pas. Logcat affiche simplement Error lorsque j'essaie d'imprimer le résultat. Je pense que le problème se trouve dans mon php script car tout fonctionne si je ne passe que 2 paramètres (childId et date1). Toute aide est grandement appréciée. Voici d'abord mon code.php :
<?php
require "conn.php";
$response = array();
if($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$childId = $_POST["childId"];
$date1 = $_POST["date"];
$date5 = $_POST["date"];
$sql = "SELECT * FROM child_sessions WHERE childId like '$childId' AND date BETWEEN '$date1' AND '$date5'";
$result = $conn->query($sql);
if($result->num_rows > 0) {
$response["child_sessions"] = array();
while($row = mysqli_fetch_array($result)) {
$child_sessions = array();
$child_sessions["date"] = $row["date"];
$child_sessions["timeIn"] = $row["timeIn"];
$child_sessions["timeOut"] = $row["timeOut"];
$child_sessions["duration"] = $row["duration"];
$child_sessions["childId"] = $row["childId"];
$child_sessions["sessionCost"] = $row["sessionCost"];
array_push($response["child_sessions"], $child_sessions);
}
// success
$response["success"] = 1;
echo json_encode($response);
} else {
echo "Error";
}
$conn->close();
?>
Et voici ma connexion depuis Android :
private String childSessions(String childId, String date1, String date5) {
InputStream inputStream = null;
String line = null;
Log.d(TAG, "childSessions: " + childId);
Log.d(TAG, "childSessions: " + date1);
Log.d(TAG, "childSessions: " + date5);
try {
String login_url = Constants.RETRIEVE_CHILD_SESSION_FOR_WEEK;
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod(Constants.REQUEST_METHOD);
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
String post_data = URLEncoder.encode("childId", "UTF-8") + "=" + URLEncoder.encode(childId, "UTF-8") + "&"+
URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(date1, "UTF-8") + "&" +
URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(date5, "UTF-8");
bufferedWriter.write(post_data);
Log.d(TAG, "childSessions: " + post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
Log.d(TAG, "childSessions: " + bufferedReader);
String result = "";
while ((line = bufferedReader.readLine()) != null) {
result += line;
Log.d(TAG, "childSessions: " + result);
}
bufferedReader.close();
//result += System.getProperty("line.separator") + responseOutput.toString();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Merci d'avance.