mazimazi
سه شنبه 03 شهریور 1394, 13:52 عصر
متد های سرور :
function readData(){
$conn = connectToDataBase();
$part = $_REQUEST['part'];
$start = $part * 10;
$end = $start + 10;
$sql = "SELECT * FROM app WHERE isActive='1' ORDER BY ap_id DESC LIMIT '$start' ,'$end' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$output=array();
while($row = $result->fetch_assoc()) {
$record=array();
$record['app_id']=$row['app_id'];
$record['app_name']=$row['app_name'];
$record['app_vote']=$row['app_vote'];
$record['app_rating']=$row['app_rating'];
$record['app_logourl']=$row['app_logourl'];
$output[]=$record;
}
} else {
echo "0 results";
}
echo json_encode($output);
$conn->close();
}
اینم کدعای ارسال به سرور :
private void populateFromServer() {
String url = "http://192.168.1.51/serial-server/service.php?action=read";
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("part", "" + part));
Log.i("LOG", "part : " + part);
final String result = Webservice.readUrl(url, params);
if (result == null) {
Toast.makeText(ActivitySerials.this, "خطا در اتصال به سرور", Toast.LENGTH_SHORT).show();
} else {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
appes.clear();
JSONArray appes= new JSONArray(result);
for (int i = 0; i < appes.length(); i++) {
JSONObject object = series.getJSONObject(i);
StructSerials serial = new StructSerials();
app.id = object.getLong("app_id");
app.name = object.getString("app_name");
app.ratingValue = (float) object.getDouble("app_rating");
app.logoUrl = object.getString("app_logourl");
app.votes = object.getString("app_vote");
appes.add(app);
}
adapter.notifyDataSetChanged();
part += 1;
list.setIsLoading(false);
}
catch (JSONException e) {
e.printStackTrace();
}
}
});
مشکل اینه که بعد از اجرا هر درخواست به سرور آرایه رو پاک میکنه . مثلا داخل بانک اطلاعاتی 30 تا رکورد دارم.بار اول 10 تا رکورد رو میگیری نمایش میدی برای بار دوم 10 تا اطلاعای که گرفتی پاک میشه و به جای 30 تا 20 رکورد نمایش میده حالا اگه اون clear رو برداری مشکلی که پیش میاد بعد هر درخواست اطلاعت تکراری تو لیست ویو میبینی. باید چی کار کنم ؟
function readData(){
$conn = connectToDataBase();
$part = $_REQUEST['part'];
$start = $part * 10;
$end = $start + 10;
$sql = "SELECT * FROM app WHERE isActive='1' ORDER BY ap_id DESC LIMIT '$start' ,'$end' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$output=array();
while($row = $result->fetch_assoc()) {
$record=array();
$record['app_id']=$row['app_id'];
$record['app_name']=$row['app_name'];
$record['app_vote']=$row['app_vote'];
$record['app_rating']=$row['app_rating'];
$record['app_logourl']=$row['app_logourl'];
$output[]=$record;
}
} else {
echo "0 results";
}
echo json_encode($output);
$conn->close();
}
اینم کدعای ارسال به سرور :
private void populateFromServer() {
String url = "http://192.168.1.51/serial-server/service.php?action=read";
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("part", "" + part));
Log.i("LOG", "part : " + part);
final String result = Webservice.readUrl(url, params);
if (result == null) {
Toast.makeText(ActivitySerials.this, "خطا در اتصال به سرور", Toast.LENGTH_SHORT).show();
} else {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
appes.clear();
JSONArray appes= new JSONArray(result);
for (int i = 0; i < appes.length(); i++) {
JSONObject object = series.getJSONObject(i);
StructSerials serial = new StructSerials();
app.id = object.getLong("app_id");
app.name = object.getString("app_name");
app.ratingValue = (float) object.getDouble("app_rating");
app.logoUrl = object.getString("app_logourl");
app.votes = object.getString("app_vote");
appes.add(app);
}
adapter.notifyDataSetChanged();
part += 1;
list.setIsLoading(false);
}
catch (JSONException e) {
e.printStackTrace();
}
}
});
مشکل اینه که بعد از اجرا هر درخواست به سرور آرایه رو پاک میکنه . مثلا داخل بانک اطلاعاتی 30 تا رکورد دارم.بار اول 10 تا رکورد رو میگیری نمایش میدی برای بار دوم 10 تا اطلاعای که گرفتی پاک میشه و به جای 30 تا 20 رکورد نمایش میده حالا اگه اون clear رو برداری مشکلی که پیش میاد بعد هر درخواست اطلاعت تکراری تو لیست ویو میبینی. باید چی کار کنم ؟