• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آپدیت کردن ردیف های دیتابیس با روشی خاص
#1
سلام

فرض کنید در سایت 500 دسترسی برای کاربر وجود داره و هر کاربر میتونه تعداد خاصی دسترسی داشته باشه

حالا ما میخوایم که به 2 صورت دسترسی به کاربرا بدیم
روش اول : دسترسی دادن به هر کاربر به صورت تکی (این مورد را اوکی هستم)

روش دوم : دسترسی داردن به کل کاربرا به صورت گروهی

فرض کنید دسترسی ارسال تیکت را میخوام یکدفعه به کل کاربرا بدم.
خب کدشو نوشتم و درست عمل میکنه ولی یه مشکلی هست و اونم اینه که اگر مثلا کاربر  ردیف یک میزان 12 تا دسترسی داره و کاربر ردیف 2 میزان 7 تا دسترسی داره و بخوایم مثلا دسترسی لیست تیکت هم به همه بدیم کوئری ما میاد و به همه ی کاربرا دسترسی های کاربر ردیف 1 که 12 تا داره را میده + دسترسی جدیدی که قصد دادنشو داشتیم.

خب کد یه ایرادی داره و میاد دسترسی همه را به تعداد دسترسی ردیف یک میده
چجوری حلش کنم که کد بگه اگه کاربر 1 تعداد 12 تا دسترسی داره و کاربر 2 تعداد 7 تا و کاربر 3 تعداد 24 تا بیاد همون دسترسی هاشونو نگه داره و یدونه ای که ما میخوایم را به همشون اضافه کنه ؟

خروجی کد در ستون دسترسی های کاربران به این صورت آرایه میشه که بعدا با تابع json_decode دوباره خوردش میکنم و استفاده میکنم
["ticket_list","ticket_add"]



اینم کدی که نوشتم
کد پی‌اچ‌پی:
$setpage_check_exist $conn->prepare("SELECT user_access,user_level FROM tbl_user WHERE user_level = ?");
 
           $setpage_check_exist->bindValue(11);
 
           $setpage_check_exist->execute();
 
           $setpage_check_exists $setpage_check_exist->fetch();

 
           $acc_p $current_access_q['access_setpage'];
 
           //$b = json_encode($aabb);
 
           $c json_decode($setpage_check_exists['user_access'], true);
 
           if ($c == null) {
 
               $c = array($acc_p);
 
           } elseif (!in_array($acc_p$c)) {
 
               array_push($c$acc_p);
 
           }
 
           $b2 json_encode($c);
 
           $update_user_tab1 $conn->prepare("UPDATE tbl_user SET user_access=:a_access_up WHERE user_level =:u_lvl");
 
           $update_user_tab1->bindParam(':a_access_up'$b2);
 
           $update_user_tab1->bindParam(':u_lvl'$ulvl);
 
           $update_user_tab1->execute(); 
  پاسخ
تشکر شده توسط :
#2
نسبت کاربر به دسترسی n به n هست پس باید یک جدول واسط براش بسازید .
https://fmhelp.filemaker.com/help/18/fmp...ships.html
https://dzone.com/articles/how-to-handle...p-in-datab

وقتی ساختارتون درست باشه ویرایش اطلاعات به سادگی قابل انجام هست .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : Y.P.Y Master_Power
#3
(۱۳۹۸ آذر ۰۴, ۰۴:۵۵ ق.ظ)Reza نوشته: نسبت کاربر به دسترسی n به n هست پس باید یک جدول واسط براش بسازید .
https://fmhelp.filemaker.com/help/18/fmp...ships.html
https://dzone.com/articles/how-to-handle...p-in-datab

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

سپاس بابت پاسخ
منم دقیقا همینکارو کردم توی کدی که دادم
نام دسترسی ها از جدول access گرفته میشه و دسترسی برای هر کاربر در جدول tbl_user ذخیره میشه
فکر کنم باید اون تیکه کدی که json میکنم و search_array میکنم را باید توی حلقه بزارم که یکی یکی هر ردیف را به صورت جدا چک کنه
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان