ذخیره آرایه ها ... !؟؟؟

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


تشکر
 

sunrise

Member
من براي اين كار از اين روش استفاده كردم:

يعني اينكه اطلاعات رو در جدول بصورت value1,value2,value3,... ذخيره كردم و هنگام فراخواني اونا رو بوسيله split و يا explode از هم جدا كردم. به نظرم اين روش خوبي بايد باشه.
 
درسته ولی به شرطی که مقدار عناصر آرایه شامل علامت , نباشه
من دنبال یه روش اساسی هستم
ممنون
 

golden

Member
من خودم تا حالا این کار را نکردم ولی فکر میکنم روشی که میگم 100 در صد عملی باشه:
تمام آرایه را به صورت رشته ای از بایتها در یک فیلد blob ذخیره کنید بعد همه را بخونید. مثلا اگه آرایه از نوع int16 باشه هر دو بایت یک عنصر از آرایه شما میشه.
 

oxygenws

Active Member
درسته ولی به شرطی که مقدار عناصر آرایه شامل علامت , نباشه
خوب باید قبلش اون کاراکتر خاص رو scape اش کنی.
مثلا هر چی "،" هست رو به "،،" تبدیل کنی و بعد از خوندن از بانک، دوباره هرچی "،،" هست رو به "،".
 
به قول یه نفر
این شکلی آدم دچار میگرن میشه

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

این روش هم که آرایه رو در یه جدول دیگه ذخیره کنیم هم برام منطقی نیست و عملا هم برام غیر ممکنه
 
اصلا بذارید بگم چیکار می خوام بکنم نکنه یکی بتونه به دادم برسه

می خوام توی یه سیستم عضوگیری برای هر فرد دسترسی ها و مجوز های مختلف تعیین کنم
از از یه جدول برای ذخیره استفاده کنم باید برای هر عضو یه جدول ساخته بشه ولی این عملا غیر ممکنه
روشی هم که شما ها گفتین برای این مورد به نظر منطقی نمی رسه
 
Ebrahimimami گفت:
اصلا بذارید بگم چیکار می خوام بکنم نکنه یکی بتونه به دادم برسه

می خوام توی یه سیستم عضوگیری برای هر فرد دسترسی ها و مجوز های مختلف تعیین کنم
از از یه جدول برای ذخیره استفاده کنم باید برای هر عضو یه جدول ساخته بشه ولی این عملا غیر ممکنه
روشی هم که شما ها گفتین برای این مورد به نظر منطقی نمی رسه


عزيز دلم همون اول مي گفتي.
جنابعالي بايد براي هر كاربر يك ستون مثلا با عنوان Access توي db مي سازي. مقدارش رو هم عدد تعيين كن.
بعد از صفحه مديريت براي هركاربر يك مقدار عددي از يك تا چهار (بسته به كاري كه مي خواي انجام بدي) اختصاص بده. حالا هر صفحه اي رو كه خواستي كاربر رو محدود كني ميتوني اين تابع رو فراخواني كني:
PHP:
access(3);
access(4);
كاربراي با كد دسترسي 3 و 4 دسترسي ندارند!
اينم خود تابع

PHP:
function access($an)
{
  global $userDetails;
  if($userDetails['access'] == $an)
  {
echo "error";
  }
}



اين رو هم در فايل لاگين بكار ببر:

PHP:
  $userac = mysql_query('SELECT * FROM `user` WHERE name = \'' . $in_user . '\' AND pass = password(\'' . $in_password . '\')');
  $userDetails = array();
  while($row = mysql_fetch_assoc($userac)){
    $userDetails = $row;
  }

لقمه آماده تر از اين؟
 
آخرین ویرایش:
ممنون
روش خوبیه
ولی هر کاربر عضو می تونه چند تا دسترسی داشته باشه
نپرس چرا !
این سیستم با اونی مثلا توی انجمن ها ست و مدیر انجمن دسترسی کاربر معمولی رو هم داره فرق داره
هر کاربر باید از یک تا بیش از 20 دسترسی داشته باشه
حالا می تونی روش فوق و تعمیم بدی ؟
فکر کنم بشه توی اون ستون عدد هایی که گفتی قرار بگیره ولی به این صورت
1,2,3,4,5,6,7,5,9,10,11,12,13,14,15,16,17,18,19,20
ولی باید نوع این ستون رو Text قرار بدیم ( البته فکر کنم درست باشه ؟؟! (; )

به هر حال ممنون از جوابت
خیلی کمک کرد
تشکر
 
Ebrahimimami گفت:
ممنون
روش خوبیه
ولی هر کاربر عضو می تونه چند تا دسترسی داشته باشه
نپرس چرا !
این سیستم با اونی مثلا توی انجمن ها ست و مدیر انجمن دسترسی کاربر معمولی رو هم داره فرق داره
هر کاربر باید از یک تا بیش از 20 دسترسی داشته باشه
حالا می تونی روش فوق و تعمیم بدی ؟
فکر کنم بشه توی اون ستون عدد هایی که گفتی قرار بگیره ولی به این صورت
1,2,3,4,5,6,7,5,9,10,11,12,13,14,15,16,17,18,19,20
ولی باید نوع این ستون رو Text قرار بدیم ( البته فکر کنم درست باشه ؟؟! (; )

به هر حال ممنون از جوابت
خیلی کمک کرد
تشکر

اشتباه نكن!
شما فقط يك عدد توي فيلد مي ذاري!
اين عدد يا 1يا 2 يا .... به قول تو 20 هست. نه چيز ديگه
ضمناً من از اين روش بجز تابع گفته شده مي تونم پنج شش روش ديگه بسازم

Ebrahimimami گفت:
ولی باید نوع این ستون رو Text قرار بدیم ( البته فکر کنم درست باشه ؟؟! (; )
فقط از نوع int
 
آخرین ویرایش:

sunrise

Member
Ebrahimimami گفت:
ممنون
روش خوبیه
ولی هر کاربر عضو می تونه چند تا دسترسی داشته باشه
نپرس چرا !
این سیستم با اونی مثلا توی انجمن ها ست و مدیر انجمن دسترسی کاربر معمولی رو هم داره فرق داره
هر کاربر باید از یک تا بیش از 20 دسترسی داشته باشه
حالا می تونی روش فوق و تعمیم بدی ؟
فکر کنم بشه توی اون ستون عدد هایی که گفتی قرار بگیره ولی به این صورت
1,2,3,4,5,6,7,5,9,10,11,12,13,14,15,16,17,18,19,20
ولی باید نوع این ستون رو Text قرار بدیم ( البته فکر کنم درست باشه ؟؟! (; )

به هر حال ممنون از جوابت
خیلی کمک کرد
تشکر
خب اينكه همون حرفي كه من گفتم شد !!! من براي دسترسي به مديران از همين روش استفاده كردم و خوب هم جواب ميده. چون اگه فقط قصدت مجوز دادن به مديران هست نيازي نيست كه بخواي تويه عنوان مجوز از كاراكتر , استفاده كني! بعنوان مثال اگه ميخواي كه يه مدير فقط به بخشهاي اخبار و دانلود سايت دسترسي داشته باشه بايد در ستوني كه به نام access يا هر چيز ديگه اي در ديتابيس براي مديران درست كردي (از نوع TEXT باشه باشه) اين رو براي اون مدير قرار بدي: news,downloads و بعد با همون روشي كه اول گفتم محتوا رو بوسيله explode يا split از هم جدا مي كني و در يك آرايه ذخيرش مي كني و بعد ديگه بقيه ماجرا رو خود مي دوني ...
 
sunrise گفت:
خب اينكه همون حرفي كه من گفتم شد !!! من براي دسترسي به مديران از همين روش استفاده كردم و خوب هم جواب ميده. چون اگه فقط قصدت مجوز دادن به مديران هست نيازي نيست كه بخواي تويه عنوان مجوز از كاراكتر , استفاده كني! بعنوان مثال اگه ميخواي كه يه مدير فقط به بخشهاي اخبار و دانلود سايت دسترسي داشته باشه بايد در ستوني كه به نام access يا هر چيز ديگه اي در ديتابيس براي مديران درست كردي (از نوع TEXT باشه باشه) اين رو براي اون مدير قرار بدي: news,downloads و بعد با همون روشي كه اول گفتم محتوا رو بوسيله explode يا split از هم جدا مي كني و در يك آرايه ذخيرش مي كني و بعد ديگه بقيه ماجرا رو خود مي دوني ...

جيگر آقا اشتباه برداشت كردند. جواب من رو بخون!
 
سيسرا گفت:
اشتباه نكن!
شما فقط يك عدد توي فيلد مي ذاري!
اين عدد يا 1يا 2 يا .... به قول تو 20 هست. نه چيز ديگه
ضمناً من از اين روش بجز تابع گفته شده مي تونم پنج شش روش ديگه بسازم


فقط از نوع int

دوست عزیز
من به هیچ وجه اشتباه نکردم
ولی روش شما رو برای کار خودم تعمیم دادم
منطورم همونیه که Sunrise تا حدودی برداشت کرده
( ببخشید من هنوز اسامی شما ها رو نمی دونم )
ببین کاربرانی که عضو سیستم میشن قابل گروه بندی از نظر دسترسی ها نیستند مثلا نمی شه اونا رو به
سرپرست ، مدیران و کاربران عادی تقسیم کرد تعداد کاربران هم حد اکثر همون 50 تا هست
و هر کدوم می تونن مجوز های مختلفی برای انجام یه کار مشترک داشته باشن
من ترکیب روش شما (یعنی در نظر گرفتن یه کد چند رقمی برای مجوز های دسترسی) و روش ‍Sunrise یعنی تفکیک
آرایه ها رو می پسندم
و اتفاقا به کارم میاد
دیگه هم مشکل وجود کاراکتر جداکننده عناصر ، در خود عناصر ، مشکلی رو ایجاد نمی کنه


تشکر از شما دو نفر
و خودم
:wink:
 

sunrise

Member
( ببخشید من هنوز اسامی شما ها رو نمی دونم )
اسم من حامد هست و خوشحالم كه تونستم به شما كمكي كرده باشم ولي روش بدي هم نيست ها، چون من خودم در سايتم از همين روش براي دسترسي استفاده كردم و جواب 100% هم گرفتم.
 

جدیدترین ارسال ها

بالا