سینک کردن دیتابیس
سلام
ایا امکان دانلود یک تیبل از رو سرور و گذاشتن ان روی دیتابیس وجود داره؟!
بهترین راه برای سینک دیتابیس سرور و کلاینت این هست که شما یک دیتابیس داخل کلاینت بسازید و درخواست سینک رو برای سرور بفرستید و اطلاعات رو به صورت Json از سرور بگیرید و بعد از دریافت کامل اطلاعات همه رو داخل دیتابیس کلاینتتون ذخیره کنید .
برای ذخیره سازی اطلاعات بر روی دیتابیس کلاینت هم قبلا آموزشش در این لینک قرار داده شده .
فقط توجه داشته باشید بارای جلوگیری از افزونگی دیتا و تکراری شدن برخی دیتا ها بهتره هنگام ارسال درخواست به سرور شماره آخرین رکورد ثبت شده در دیتابیس کلاینت رو هم بدید تا رکورد های جدید رو فقط بگیرید و مشکل در تکرار اطلاعات نداشته باشید .
دوست عزیز شما با استفاده از یکی از دو دستور زیر id آخرین رکورد دیتابیس لوکال رو بگیرید و به عنوان پارامتر به سرورتون ارسال کنید.
SELECT id FROM tablename ORDER BY column DESC LIMIT 1;
یا
SELECT ID
FROM TABLE
WHERE ID = (SELECT MAX(ID) FROM TABLE);
سپس در سمت سرور با استفاده از کد زیر id رو دریافت کنید، یک گزارش بگیرید و با کد json به سمت کلاینت ارسال کنید.
$id = $_POST['id'];
$result = mysql_query ("SELECT * FROM tableName WHERE id > '$id'");
$count = mysql_num_rows($result);
if($count > 0){
$output = array();
while($row = mysqli_fetch_array($count)) {
$record = array();
$record['item_id'] = $row['item_id'];
همینطور بقیه رکوردهای جدول
$output[] = $record;
}
echo json_encode($output);
}
else{
echo '[{"report":"0"}]';
}
سمت کلاینت اطلاعات رو با ساخت نمونه جدیدی از کلاس ساختار پروژتون دریافت کنید و هربار در دیتابیس محلی درج کنید.
نکته اول اینکه توجه داشته باشید کد ها کامل نیستن و فقط مبحث گزارش گیری رو مد نظر قرار دادم. بقیه کدهای مربوط به ارسال و دریافت در پروژه های note و مارکت که استاد تدریس کردن موجود هست. و دوم اینکه بنده کدها رو تست نکردم و فقط روال کار رو نشون دادم و البته احتمال میدم راههای دیگه و شاید بهتر و سریعتر وجود داشته باشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .