نوشته شده توسط
IMANAZADI
با سلام
فرض کنید که در یک صفحه 5 عدد تکس باکس و دو کلید به نام send و save داریم
کاربر تمامی تکس باکس ها رو پر میکنه و کلید send رو میزنه
اطلاعات تکس باکس ها توسط آژاکس به صورت آرایه به سرور ارسال و پردازش و نتیجه به صورت یک رکورد (رکورد بانک اطلاعاتی) برگردانده میشود و در همان صفحه در یک جدول نمایش داده میشود
و اطلاعات بعدی به همین ترتیب الی آخر ......
حالا میخواهیم وقتی کاربر کلید save رو زده تمام اطلاعات که در جدول ثبت شده بود توسط آژاکس در دیتابیس ذخیره بشه
تا اینجا هم مشکلی نیست
ولی اگر کاربر برای بار دوم کلید save رو بزنه اطلاعات به صورت تکراری مجددا در دیتابیس ذخیره میشه
اینم بگم در جدول نمیتونیم هیچ فیلدی رو کلید کنیم چه ترکیبی چه تکی(توضیحش مفصل هست)
راه حلی برای حل این مشکل سراغ دارید ؟؟؟
ممنون میشم
سلام
بله قطعا امکان پذیر هست.
شما نیاز به ساختاری "مانند" یا "دقیقا برابر" SESSION ها یا Cache ها دارید.
بعد از اینکه اطلاعات بصورت JSON به سرور ارسال کردید و اطلاعات در دیتابیس ذخیره شد، شما نیاز دارید تا اون آرایه اطلاعات دریافتی با توجه به کوکی یا IP کاربر یا ... ذخیره کنید(مسائل امنیتی رعایت شود)
در هنگام ارسال مجدد اطلاعات به سرور شما باید داده های جدید را با استفاده از تابع array_diff بصورت زیر بررسی کنید:
<?php
$toremove = array_diff($olddata, $newdata);
?>
سپس مقادیر پیدا شده رو با توجه به ساختار پایگاه دادتون حذف کنید.
سپس در قدم دوم با استفاده از تابع مذکور موارد جدید رو پیدا کنید:
<?php
$toadd = array_diff($newdata, $olddata);
?>