У меня есть кнопка «Мне нравится» в моем приложении, и когда пользователь нажимает на нее. с asynchttpclient 2 отправка данных в php
1: идентификатор этого баннера в базе данных, которая понравилась
2: like_counter = 1
мой асинхронный код
private void like(final String ID) {
AsyncHttpPost post = new AsyncHttpPost(
"http://*********/like.php");
post.setTimeout(5000);
MultipartFormDataBody body = new MultipartFormDataBody();
body.addStringPart("ID", ID);
body.addStringPart("like_counter" , String.valueOf(like_counter));
Log.d("idsent",ID);
Log.d("idsent", String.valueOf(like_counter));
post.setBody(body);
Log.d("bodyjson",body.toString());
AsyncHttpClient.getDefaultInstance().executeString(post, new AsyncHttpClient.StringCallback() {
@Override
public void onCompleted(final Exception e, AsyncHttpResponse source, String result) {
}
});
}
Я получаю войти в Android и все в порядке.
но я не знаю, почему при отправке данных моя база данных не меняет число в поле «Мне нравится».
это мой php код:
<?php
$connection=mysqli_connect("s*******","zi*********78","*******","zi***********");
if (mysqli_connect_errno()) {
echo "Error is" . mysqli_connect_error();
}
$ID= $_REQUEST['ID'];
if($ID !="" ){
$likecount = mysqli_query($connection,"select Like from banners where ID='$ID'");
$result = mysqli_query($connection,"update banners set Like=$likecount+1 where ID='$ID' ");
if($result!=""){
print "ok";
}else if($result==""){
print "no";
}
mysqli_close($connection);
}else {
print "null";
}
?>
Когда я помещаю данные в URL в браузере, он просто печатает ноль.
Зачем?
Однажды я даю like_counter свой php-код, а однажды не даю этого.
мое поле «Мне нравится» — Int и As определяют 0
а в андроиде ID это String, а like_counter это Int.
Спасибо
Задача ещё не решена.
Других решений пока нет …