Mise à jour: -Php - Code de comparaison de la valeur de base de données à la valeur envoyer par Android app
Il sauvegarder les données à table si même id n'existe pas dans le tableau.
est ici la réponse que je reçois l'aide dans ma réponse
Log.i ("réponse", "réponse:" + réponse);
Response: response: <br />
<b>Notice</b>: Undefined variable: id in <b>/storage/ssd2/319/3199319/public_html/leaderboard.php</b> on line <b>31</b><br />
<br />
<b>Notice</b>: Undefined variable: connect in <b>/storage/ssd2/319/3199319/public_html/leaderboard.php</b> on line <b>32</b><br />
<br />
<b>Warning</b>: mysqli_query() expects parameter 1 to be mysqli, null given in <b>/storage/ssd2/319/3199319/public_html/leaderboard.php</b> on line <b>32</b><br />
<br />
<b>Warning</b>: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in <b>/storage/ssd2/319/3199319/public_html/leaderboard.php</b> on line <b>32</b><br />
<br />
<b>Notice</b>: Undefined variable: time in <b>/storage/ssd2/319/3199319/public_html/leaderboard.php</b> on line <b>33</b><br />
{"success":false}
J'ai créé un code php pour vérifier si la base de données a id existe déjà ou non. Si elle existe alors j'ai comparé la valeur de temps avec la valeur que je lui ai envoyée sinon sauvegardez la valeur dans la table. Si la valeur envoyée par moi est inférieure à celle de la valeur dans la base de données puis mettre à jour la table sinon, la requête est annulée. Mais je reçois une erreur. S'il vous plaît aider.
Mon Php Code: -
<?php
$connect = mysqli_connect("localhost", "id3199319_s", "pass", "id3199319_k");
$name = $_POST["name"];
$time = $_POST["time"];
$id = $_POST["id"];
function registerUser() {
global $connect, $name, $time, $id;
$statement = mysqli_prepare($connect, "INSERT INTO leaderboard (name, time, id) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($statement, "sis", $name, $time, $id);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
}
function nameAvailable() {
global $connect, $id;
$statement = mysqli_prepare($connect, "SELECT * FROM leaderboard WHERE id = ?");
mysqli_stmt_bind_param($statement, "s", $id);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
$count = mysqli_stmt_num_rows($statement);
mysqli_stmt_close($statement);
if ($count < 1){
return true;
}else {
return false;
}
}
function updateTime(){
$sql = "SELECT time from leaderboard WHERE id = $id;";
$res = mysqli_fetch_assoc(mysqli_query($connect, $sql));
if($time < $res['time']){
$sql = "UPDATE table leaderboard SET time = $time where id=$id";
$res = mysqli_query($connect, $sql);
if(!$res){
die("Query not executed " . mysqli_error($connect));
$response["success"] = false;
} else {
$response["success"] = true;
}
}
}
$response = array();
$response["success"] = false;
if (nameAvailable()){
registerUser();
$response["success"] = true;
} else {
updateTime();
}
echo json_encode($response);
?>
Volley Demande
public void winner_registration(){
String tm = timer_box.getText().toString();
String[] tmm = tm.split(":");
int hr = Integer.parseInt(tmm[0]);
int hr_sec = hr*60*60;
int minn = Integer.parseInt(tmm[1]);
int minn_sec = minn*60;
int secc = Integer.parseInt(tmm[2]);
int totalTime = hr_sec+minn_sec+secc;
String myName = Profile.getCurrentProfile().getName();
String id = Profile.getCurrentProfile().getId();
Response.Listener<String> response = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success){
Toast.makeText(Play.this, "Details Submitted To LeaderBoard", Toast.LENGTH_SHORT).show();
} else{
Toast.makeText(Play.this, "Something Went Wrong! Score not Submitted", Toast.LENGTH_SHORT).show();
}
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
score_submit_progressdialog.dismiss();
startActivity(new Intent(Play.this, Home.class));
finish();
}
}, 50);
} catch (JSONException e) {
Toast.makeText(Play.this, "Something Went Wrong :"+e, Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
};
RegisterWinner registerRequest = new RegisterWinner(myName,totalTime,id, response);
RequestQueue queue = Volley.newRequestQueue(Play.this);
queue.add(registerRequest);
}
RegisterWinner
de RegisterWinner public class étend StringRequest {
public static final String REGISTER_REQUEST_URL = "URL";
private Map<String, String> params;
public RegisterWinner(String name, int totalTime, String id, Response.Listener<String> listener){
super(Method.POST, REGISTER_REQUEST_URL, listener , null);
params = new HashMap<>();
params.put("name", name);
params.put("time", String.valueOf(totalTime));
params.put("id", id);
}
@Override
public Map<String, String> getParams() {
return params;
}
}
est ici l'erreur que je reçois lorsque la table doivent être mis à jour
Pouvez-vous poster ce que vous obtenez comme réponse dans 'onResponse public void (réponse String)'? –
Vous récupérez html de php et vous essayez de l'analyser comme json. Connectez-vous le résultat et vous verrez. – greenapps
je reçois une réponse JSON ne –