بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سینک کردن دیتابیس

مدیریت گفتگو
Mir Unknown 12 سال پیش
آخرین تغییر: 11 سال پیش

سلام

ایا امکان دانلود یک تیبل از رو سرور و گذاشتن ان روی دیتابیس وجود داره؟!

نظرات

Mseif 12 سال پیش
بله ویدئوی note استاد رو ببیند واقعا عالی توضیح داده شده
Mir Unknown 12 سال پیش
تو پروژه نت فقط اطلاعات از سرور خونده میشن سینک کردن در ویدیو نیست و اصلا از دیتابیس اسفاده نمیشه!
Mseif 12 سال پیش
خب فرقی نداره ساختار کلی توضیح داده شده شما وقتی داده ها رو می خونین همزمان تو دیتابیس هم بریزینش
Mir Unknown 12 سال پیش
میشه کل فیلد حتی اسمشم گرفتو ریخت تو دیتابیس؟!
Mseif 12 سال پیش
شما یه دیتابیس شبیه همونی که توی وب دارین رو داخل sqlite بسازین بعدوقتی داده ها رو از وب گرفتین اینسرت کنید داخل جدول مربوطش و نیازی به گرفتت اسم فیلد نیست
Mir Unknown 11 سال پیش
منطقی نیست اینجوری همیشه باید دیتا دانلود بشه،چ جدید باشن چ قدیمی
Mseif 11 سال پیش
خیر شما می تونید با استفاده از کوئری سمت سرور داده های جدید رو فقط اضافه کنید و نیازی نیست کله دیتا ها باز بروز رسانی بشن
Mir Unknown 11 سال پیش
خب چطوری با چ دستوری؟! اگه ممکنه راهنمایی کنید
Mseif 11 سال پیش
خب شما باید به دستورات SQL تسلط داشته باشین
Mir Unknown 11 سال پیش
متاسفانه ندارم،یعنی یکم دارم اما واس همچین کاری نمیدونم چ دستوری و چطوری استفاده کنم و سوالو هم واس پیدا کردن همچین دستوری زدم،اگه اشنایی دارید ممنون میشم کمک کنید

پاسخ‌ها 2

کاشی زاده 11 سال پیش

بهترین راه برای سینک دیتابیس سرور و کلاینت این هست که شما یک دیتابیس داخل کلاینت بسازید و درخواست سینک رو برای سرور بفرستید و اطلاعات رو به صورت Json از سرور بگیرید و بعد از دریافت کامل اطلاعات همه رو داخل دیتابیس کلاینتتون ذخیره کنید .

برای ذخیره سازی اطلاعات بر روی دیتابیس کلاینت هم قبلا آموزشش در این لینک قرار داده شده .

فقط توجه داشته باشید بارای جلوگیری از افزونگی دیتا و تکراری شدن برخی دیتا ها بهتره هنگام ارسال درخواست به سرور شماره آخرین رکورد ثبت شده در دیتابیس کلاینت رو هم بدید تا رکورد های جدید رو فقط بگیرید و مشکل در تکرار اطلاعات نداشته باشید .

نظرات

EloMan 11 سال پیش

دوست عزیز شما با استفاده از یکی از دو دستور زیر 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 و مارکت که استاد تدریس کردن موجود هست. و دوم اینکه بنده کدها رو تست نکردم و فقط روال کار رو نشون دادم و البته احتمال میدم راههای دیگه و شاید بهتر و سریعتر وجود داشته باشه.

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .