J'ai une application qui lit les données JSON de phpmyadmin à travers un script PHP et affichée dans une activité de liste. Une fois qu'un nom de magasin est cliqué, +1 est ajouté au nombre de votes pour ce magasin et est censé être renvoyé au serveur php pour stocker le nouveau nombre de votes dans phpmyadmin. Après la sélection, je vérifie la valeur du nombre de votes db et elle n'est pas mise à jour. Bien que je reçoive HTTP/1.1 200 ok dans logcat, je ne pense pas que les données soient transmises ou prises correctement. Est-ce que quelqu'un peut aider, je suis coincé et n'ai aucune direction.Les données ne sont pas transmises correctement au serveur php
code Android:
public void writeJSON() {
String convertedID;
String convertedVote;
//convert int to string value to passed
convertedID = new Integer(selectedID).toString();
convertedVote = new Integer(selectedVote).toString();
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/kcstores.php");
try {
//writes the output to be stored in creolefashions.com/test2.php
ArrayList <NameValuePair> nvps = new ArrayList <NameValuePair>(2);
nvps.add(new BasicNameValuePair("storeUpdate", "update"));
nvps.add(new BasicNameValuePair("storeID", convertedID));
nvps.add(new BasicNameValuePair("storeVote", convertedVote));
httppost.setEntity(new UrlEncodedFormEntity(nvps));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
Log.i("writeJSON", response.getStatusLine().toString());
} catch(Exception e) {
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
Code PHP:
<?php
$link = mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db("king_cake_stores")or die (mysql_error());
$query = "SELECT * FROM storeInfo";
$result = mysql_query($query);
$getUpdate = "noupdate";
if (isset($_POST['storeUpdate'])) {
echo "receiving data from app";
$getUpdate = $_POST['storeUpdate'];
$getStoreID = $_POST['storeID'];
$getStoreVote = $_POST['storeVote'];
}
// If command == getStoreID, it updates the table storeVote value
// with the android storeVote value based upon correct storeID
if ($getUpdate == "update") {
mysql_select_db("UPDATE storeInfo SET storeVote = $getStoreVote
WHERE storeID == $getStoreID");
} else {
// stores the data in an array to be sent to android application
while ($line = mysql_fetch_assoc($result)) $output[]=$line;
print(json_encode($output));
}
mysql_close($link);
?>
vous avez '==' au lieu de '=' dans votre requête de mise à jour, aussi injection SQL –
Je l'ai là parce que où le quand le storeId == getStoreId, cela signifie que c'est le même enregistrement, donc procéder à la mise à jour. – Skip
[Retour à l'école] (http://www.w3schools.com/sql/sql_where.asp) '' = égalité –