بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
راهنمایی در مورد دیتابیس داخلی
من یک لیست ویو دارم که یک سری اطلاعات رو آنلاین می خونه و اومدم یه دیتابیس داخلی در گوشی هم راه انداختم که وقتی به اینترنت وصل نبود از local بخونه.
حالا وقتی اطلاعات رو آنلاین می خونم درج میشه داخل local .
ولی نمیاد چک کنه با آخرین آیدی که اگه تکراری بود نفرسته .
هر بار آنلاین می خونم تکراری درج می کنه داخل local. داخل این params چطوری کد بنویسم که درست شه؟ اون news_id هم آخرین ایدی رو از local سلکت می کنه.
public void newsRead(){
String url = "http://192.168.0.1/android/note_server/news.php";
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("action", "read"));
params.add(new BasicNameValuePair("News_id", news_id)); ====> اینجا
Log.i("LOG", params.toString());
String result = Webservice.readUrl(url, params);
if (result != null) {
try {
JSONArray tasks = new JSONArray(result);
DataBaseConnection db = new DataBaseConnection(this, "database", 5);
final SQLiteDatabase database = db.getWritableDatabase();
for (int i = 0; i < tasks.length(); i++) {
JSONObject object = tasks.getJSONObject(i);
StructTask task = new StructTask();
task.id = object.getString("news_id");
task.title = object.getString("news_title");
task.desc = object.getString("news_desc");
task.date = object.getString("news_date") ;
database.execSQL("INSERT INTO news (news_title,news_desc,news_date) VALUES ('" + task.title + "','" + task.desc + "','" + task.date + "')");
G.tasks.add(task);
}
database.close();
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
-------------------------------------------
php
function read(){
$connection = connectToDatabase();
$result = mysqli_query($connection, "SELECT * FROM news WHERE ('news_id' > '{$News_id}')");
$output = array();
while($row = mysqli_fetch_array($result)) {
$record = array();
$record['news_id'] = $row['news_id'];
$record['news_title'] = $row['news_title'];
$record['news_desc'] = $row['news_desc'];
$record['news_date'] = $row['news_date'];
$output[] = $record;
}
0
0
این کدها درست کار میکنن ؟ DataBaseConnection چیه؟ از کجا باید بیارمش ؟ (11 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Amir.z
11 سال پیش
+1
0
با سلام , این کد رو تست کنین شاید براتون موثر باشه, اگر تکراری باشه اضافه نمیشه , و آپدیت میشه
"INSERT or replace INTO news
نمیدونم متوجه شدم یا نه ولی خب یه چیزایی میگم : شما باید همیشه از دیتا بیس لوکال اطلاعات رو بخونید و نمایش بدید بعدش هر وقت به اینترنت وصل شدین یا دکمه ی آپدیت اطلاعات در برنامتون فشرده شد اونوقت آی دی آخرین مطلب سمت لوکال و سمت سرور رو با تابع max از SQL بگیرید و مقایسه کنید اگه آیدی سمت سرور بزرگر بود باید اطلاعات داخل دیتا بیس لوکال ذخیره بشه و تموم :) اگه بازم مشکلی بود بگو (10 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .