نمایش نتایج 1 تا 7 از 7

نام تاپیک: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    www
    پست
    741

    راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    با سلام
    فرض کنید که در یک صفحه 5 عدد تکس باکس و دو کلید به نام send و save داریم

    کاربر تمامی تکس باکس ها رو پر میکنه و کلید send رو میزنه

    اطلاعات تکس باکس ها توسط آژاکس به صورت آرایه به سرور ارسال و پردازش و نتیجه به صورت یک رکورد (رکورد بانک اطلاعاتی) برگردانده میشود و در همان صفحه در یک جدول نمایش داده میشود
    و اطلاعات بعدی به همین ترتیب الی آخر ......

    حالا میخواهیم وقتی کاربر کلید save رو زده تمام اطلاعات که در جدول ثبت شده بود توسط آژاکس در دیتابیس ذخیره بشه
    تا اینجا هم مشکلی نیست

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

    اینم بگم در جدول نمیتونیم هیچ فیلدی رو کلید کنیم چه ترکیبی چه تکی(توضیحش مفصل هست)

    راه حلی برای حل این مشکل سراغ دارید ؟؟؟

    ممنون میشم

  2. #2

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    این مورد رو باید با jquery یه جوری حلش کنی
    وقتی درخواست میره سمت سرور شما دکمه ارسال رو disable کن تا دوباره درخواست نره. اگر جواب ok بود و دیتا insert شد فرم و تمام فیلدهای ui رو پاک کن. تا دوباره با ثبت مجدد دوباره دیتا ارسال نشه

  3. #3
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    www
    پست
    741

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    نمیخوام اینکار رو کنم
    واسه اینکه میخوام زمانیکه کاربر save رو زد و دوباره رکورد جدیدی اضافه کرد فقط رکورد جدید ذخیره بشه و رکوردهایی که تو save قبلی وارد دیتابیس شده بود ، مجدد insert نشه
    یه الگوریتم شناسایی میخوام که بتونه رکوردهایی که بعد از save اضافه شده رو شناسایی کنه و فقط همونا رو در بانک اضافه کنه (بدون هیچگونه رفرش صفحه)

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    www
    پست
    741

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    دوستان عکس پیوست کردم
    یک مسئله دیگه باید برای حذف(delete) هم این مسئله رو در نظر گرفت
    که اگر رکوردها سیو شد و بعد رکوردی حذف شد اونو تشخیص بدیم و از دیتابیس حذف کنیم
    عکس های ضمیمه عکس های ضمیمه

  5. #5

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    این طوری نمیشه. اون جایی که تو مقدارها رو از textbox ها جمع میکنی و میفرستی رو این جا کپی کن تا من از روی کد بهت توضیح بدم

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    www
    پست
    741

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    اطلاعات به صورت json و آرایه جمع آوری و ارسال میشه

  7. #7

    نقل قول: راهنمایی برای جلوگیری از ذخیره مجدد رکوردها

    نقل قول نوشته شده توسط 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);
    ?>

تاپیک های مشابه

  1. پاسخ: 2
    آخرین پست: شنبه 28 اردیبهشت 1392, 17:02 عصر
  2. جلوگیری از ذخیره مجدد اطلاعات
    نوشته شده توسط bps20590 در بخش PHP
    پاسخ: 2
    آخرین پست: چهارشنبه 18 اردیبهشت 1392, 16:16 عصر
  3. جلوگيري از ذخيره مجدد اطلاعات
    نوشته شده توسط bps20590 در بخش PHP
    پاسخ: 3
    آخرین پست: جمعه 27 مرداد 1391, 17:26 عصر
  4. پاسخ: 6
    آخرین پست: شنبه 18 مهر 1388, 11:05 صبح
  5. راهنمایی برای جلوگیری از unpack شدن
    نوشته شده توسط thelastphoenix در بخش مهندسی مجدد و معکوس
    پاسخ: 12
    آخرین پست: شنبه 31 مرداد 1388, 15:30 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •