ارتباط با اطلاعات درون دیتابیس برای هر کاربر!

SME

Banned
سلام
چند وقتی نبودم!
یه چند تا سوال داشتم...اولی رو میپرسم، بعد از اینکه جواب این رو گرفتم میرو سراغ بعدی.:wink: چون یه جورایی با هم ربط پیدا میکنه.

می میخوام وقتی کاربر وارد کنترل پنلش شد، یک سری اطلاعات براش از دیتا بیس نمایش داده بشه. به این صورت که مثلا قبلا مدیر سایت 5 تا تیبل وارد دیتا بیس کرده و مربوط به این کاربر هست. وقتی کاربر وارد سایت شد و مثلا لینک "اطلاعات جدید" رو کلیک کرد اوون 5تا تیبل براش نشون داده بشه.

ممنون میشم جواب بدین...:)
 

peyman1987

Member
دوست عزيز فکر کنم سوالت رو اشتباه پرسيدي. يعني چي مدير 5 تا تيبل براي اون کاربر وارد ديتابيس کرده؟:eek:
 
  • Like
Reactions: SME

tabib_m

Member
هر چند سؤالت خیییلی کلیه...

اول یه سؤال: تا چه حد کار با php و mysql بلدی؟

چند راه: 1- استفاده از کوکی 2- استفاده مستقیم از دیتابیس (در بعضی از شرایط پیشنهاد میشه) 3- استفاده از تاریخ (پیشنهاد نمیشه) 4- تلفیقی از سه روش (پیشنهاد میشه)

کاری که شما میخوای بکنی، کاملا یک برنامه نویسی هست. یعنی باید بشینی تصمیم بگیری که دقیقا چه اتفاقی میخوای بیفته ، و بعد بر اساس مقصودت، کد بنویسی.

برای مثال، شما اگر بخوای مثل این فروم، در صورت ارسال مطلب جدید در یک تاپیک، اونهایی که توی تاپیک مطلب داشتن، توی کنترل پنلشون با خبر بشن، یکی از راه ها اینه که یه جدول داشته باشی، و به ازای هر ارسال در تاپیک مربوطه، برنامه بگرده که چه کسایی در این تاپیک سهیم هستن، و بعد برای هر کدوم از اونها یک رکورد در جدول مربوطه اینسرت کنه و بعد برای هر کدوم به صورت جداگانه نمایش داده بشه.

دیگه کاملا بستگی داره به ریز ریز کاری که در نظر شما هست...

موفق باشید.
 
  • Like
Reactions: SME

SME

Banned
هر چند سؤالت خیییلی کلیه...

اول یه سؤال: تا چه حد کار با php و mysql بلدی؟

چند راه: 1- استفاده از کوکی 2- استفاده مستقیم از دیتابیس (در بعضی از شرایط پیشنهاد میشه) 3- استفاده از تاریخ (پیشنهاد نمیشه) 4- تلفیقی از سه روش (پیشنهاد میشه)

کاری که شما میخوای بکنی، کاملا یک برنامه نویسی هست. یعنی باید بشینی تصمیم بگیری که دقیقا چه اتفاقی میخوای بیفته ، و بعد بر اساس مقصودت، کد بنویسی.

برای مثال، شما اگر بخوای مثل این فروم، در صورت ارسال مطلب جدید در یک تاپیک، اونهایی که توی تاپیک مطلب داشتن، توی کنترل پنلشون با خبر بشن، یکی از راه ها اینه که یه جدول داشته باشی، و به ازای هر ارسال در تاپیک مربوطه، برنامه بگرده که چه کسایی در این تاپیک سهیم هستن، و بعد برای هر کدوم از اونها یک رکورد در جدول مربوطه اینسرت کنه و بعد برای هر کدوم به صورت جداگانه نمایش داده بشه.

دیگه کاملا بستگی داره به ریز ریز کاری که در نظر شما هست...

موفق باشید.
ممنونم که راهنمایی کردی.
ببین من میخوام دقیقا این کار رو انجام بدم.
وقتی کاربر لوگین کرد، وارد پنل کاربری خودش میشه بعد میاد و روی لینکی مثلا به نام "اطلاعات جدید" کلیک میکنه.
قبلا توسط مدیر یک سری اطلاعات مربوط به این کاربر وارد دیتا بیس شده. برای مثال قیمت طلا-قیمت نقره و قیمت برنز.
وقتی کاربر روی لینکی که گقتم کلیک میکنه یک جدول از قیمتهای جدید طلا - نقره و برنز رو میبینه.
سوال دومی هم که داشتم اینه که میخوام این اطلاعات توسط مدیر سایت که مسیول وارد کردن اطلاعات هست برای مدت محدودی نمایش داده بشه و بعد از گذشت مثلا 6 ماه این اطلاعات داخل آرشیو (قابل دسترسی برای کاربر) ذخیره بشه.
من از کوکی و سشن هم برای احراز هویت و درنتیجه دسترسی به صفحات کاربری استفاده میکنم. اما چون این اطلاعاتی که مدیر برای هر کاربر وارد میکنه ممکنه متفاوت باشه نمیدونم باید چطوری اطلاعات رو به نمایش در بیارم.

ممنون میشم جواب بدید.
 
آخرین ویرایش:

jhoseini

Member
همونطور که tabib_m گفتن، به واسطه ی کاری که میخواید باید تحلیل کنید، کدنویسیش فکر نمیکنم چندان سخت باشه
لینکی مثلا به نام "اطلاعات جدید" کلیک میکنه.
برای هر رکورد یه فیلد مثلاً به اسم new رو در نظر بگیرید و بعد از دیده شدن اون رکورد توسط کاربر، مقدارش رو روی 0 تنظیم کنید و در دفعات بعدی که روی لینک اطلاعات جدید کلیک میشه select * from table where new=1 درخواست بشه

در مورد آرشیو شدن هم، تاریخ ثبت رکورد توسط مدیر، رو توی هر رکورد نگه دارید و لحظه ی بازیابی رکورد select * from table where date> 20070302
 
  • Like
Reactions: SME

SME

Banned
برای هر رکورد یه فیلد مثلاً به اسم new رو در نظر بگیرید
این کار رو تو دیتا بیس انجام بدم؟
ببینید آخه اطلاعاتی که توسط مدیر سایت وارد میشه متفاوت هست. مثلا برای یوزری با کد 10223 یک سری اطلاعات رو وارد میکنه. حالا اگه بخوام این اطلاعات برای یوزر 10223 وقتی لوگین کرد وارد بشه نمیدونم چی کار باید بکنم.
راستش رو بخواید من یکم تازه کارم :) اگه دیر میگیرم، شرمنده :sad:

برای هر رکورد یه فیلد مثلاً به اسم new رو در نظر بگیرید و بعد از دیده شدن اون رکورد توسط کاربر، مقدارش رو روی 0 تنظیم کنید و در دفعات بعدی که روی لینک اطلاعات جدید کلیک میشه select * from table where new=1 درخواست بشه
این کار رو هم تو دیتابیس انجام بدم یا اینکه در ارتباط php با DataBase باید این کار رو بکنم؟:neutral:
 

peyman1987

Member
همونطور که خودتون گفتين چون اطلاعاتي که وارد ميشه با هم متفاوت هست ( شايد يک بار اطلاعات مريوط به طلا و جواهرات باشه دفعه ديگه مربوط به مسابقات فوتبال و يک بار هم مربوط به پستهاي جديد) بهتره شما يه مقدار غير استاندارد کار کني يعني مثلا يه جدول طراحي کني با فيلدهاي مثلا کد کاربر ، عنوان خبر ، متن خبر ، زمان انقضا و متن خبر رو از نوع text انتخاب کني. بعد با ويرايشگرهاي حالا يا آماده يا خودت نوشته باشي متن خبرت رو درست کني و کد html رو توي اين جدول ذخيره کني. اينجوري همه نوع خبري ميشه براي کاربر فرستاد. اگه منظورت رو درست فهميده باشم بايد اين راه جواب بده.
 
  • Like
Reactions: SME

jhoseini

Member
ببینید آخه اطلاعاتی که توسط مدیر سایت وارد میشه متفاوت هست. مثلا برای یوزری با کد 10223 یک سری اطلاعات رو وارد میکنه. حالا اگه بخوام این اطلاعات برای یوزر 10223 وقتی لوگین کرد وارد بشه نمیدونم چی کار باید بکنم.
یه چیزی شبیه به پست های جدید یه فاروم؟ که ممکنه برای کاربر a تازه باشه و برای کاربر b قدیمی؟
اگه اینطوره باید به واسطه زمان ثبت رکورد + زمان آخرین بازدید کاربر اقدام بشه

لطفا بیشتر توضیح بدید !
mayi.gif
 

tabib_m

Member
اول یه سؤال: تا چه حد کار با php و mysql بلدی؟
...

مطمئنا اگر به اندازه ی کافی اطلاعات نداشته باشی، نمیشه راهنماییت کرد! کاری که شما میخوای بکنی ، کد آماده ای هم نداره که بخوایم تحویل بدیم!!

در مورد شیوه ی برنامه هم ، همونی که گفتم برای راهنمایی کافیه، یعنی بیشتر از این نمیشه گفت، مگر اطلاعات دقیقتر و بهتری بدید، اگر کار با دیتابیس و کدهای sql رو بلد باشید، نباید به مشکل بخورید.
اگر هم کار با دیتابیس رو بلد نیستید، پیشنهاد میکنم یا برید یاد بگیرید، یا این که این کار رو به کسی که بلده محول کنید...

موفق باشید.
 
  • Like
Reactions: SME

SME

Banned
بهتره شما يه مقدار غير استاندارد کار کني يعني مثلا يه جدول طراحي کني با فيلدهاي مثلا کد کاربر ، عنوان خبر ، متن خبر ، زمان انقضا و متن خبر رو از نوع text انتخاب کني.
پیمان جان مشکل من دقیقا همینه! که وقتی کاربر وارد شد اطلاعات ورودیش از یه تیبل به نام users_filred دریافت بشه و وقتی روی لینک مورد نظر کلیک کرد اطلاعات آماریش که توسط مدیر وارد شده هم از تیبل user_news خونده بشه و به صورت یک جدول تحت وب نمایش داده بشه.

یه چیزی شبیه به پست های جدید یه فاروم؟ که ممکنه برای کاربر a تازه باشه و برای کاربر b قدیمی؟
اگه اینطوره باید به واسطه زمان ثبت رکورد + زمان آخرین بازدید کاربر اقدام بشه لطفا بیشتر توضیح بدید !
دقیقا یه همچین چیزی. البته بزارید در مورد ایده پروژه چیزی نگم :wink:(البته فعلا). جلال جان میتونی تو کد نویسیش (البته برای قسمت نمایش رکرودها برای کاربر) کمکم کنی؟ با توجه به اینکه مثلا بشه یک سری محدودیتهای زمانی (اطلاعات بعد از مدتی که مدیر مشخص میکنه به آرشیو بره) که قبلا مدیر که اطلاعات رو وارد کرده هم اعمال بشه...

اول یه سؤال: تا چه حد کار با php و mysql بلدی؟
جواب: تو هر دو مورد تازه کار هستم. اما کدهای زیادی رو آشنایی دارم ولی از خیلی هاشون تاحالا استفاده نکردم.
محسن جان ممنونم...
اگر میشه شما هم منو تو کد نویسی راهنماییم کنید.
 

peyman1987

Member
فکر کنم برای رفع این مشکل که بعضی کاربرا بعضی خبرها رو دیدن و بعضی دیگه ندیدن اصولش اینه که یه جدول رابط بین جدول کاربرا و جدول اخبار بزنین که حداقل دو تا فیلد داشته باشه برای کد کاربر و کد خبر. هر خبری که توی این جدول کدش موجود باشه توسط اون کاربری که کدش درج شده دیده شده و هر خبری که کدش توی این جدول نباشه دیده نشده.
 
  • Like
Reactions: SME

jhoseini

Member
من خیلی ساده مینویسم، خودتون شرح و بسط بدید، زیاد سخت نیست

PHP:
<?

// در آوردن آخرین اکسس کاربر
if(!$_SESSION['last_access_got']){
   $res = mysql_query("select `last_access` from `members` where `username`='MyUsername' limit 1 ");
   $last_access = mysql_result($res,0,0);
   $date = date("Ymd");
   $res = mysql_query("update `members`  set `last_access`='$date'  where `username`='MyUsername' limit 1 ");
   $_SESSION['last_access_got'] = true;
}

// در آوردن رکورد های جدید
$res2 = mysql_query(" select * from `records` where `creation_date`>'$last_access' ");
while($rec=mysql_fetch_array($res2)){
  ?><pre><? print_r($rec) ?></pre><hr><?
}
?>

271.gif
 
آخرین ویرایش:
  • Like
Reactions: SME

SME

Banned
جلال جان خیلی ممنونم.:oops:
کد شماره 1 و کد شماره 2 رو باید با هم بکار ببرم؟ یا اینکه کد یک مربوط به صفحه کاربر هست؟
 

SME

Banned
سوال! (ببخشید جلال :oops: جان)
last_access
members
records
اینا اسم 3تا تیبل مختلف توی دیتابیس هستش؟
این MyUsername چیه؟ یک قسمت از تیبل last_access و members؟:sad:
 

jhoseini

Member
کد:
CREATE TABLE  `members`(
  `username` varchar(250) NOT NULL,
  `password` varchar(250) NOT NULL,
  `last_access`bigint(20) NOT NULL,
  PRIMARY KEY  (`username`)
) ;


CREATE TABLE  `records`(
  `id` bigint(12) NOT NULL auto_increment,
  `creation_date`bigint(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ;
MyUsername یه مثال بود، به جاش باید نام کاربری وارد بشه که در حال حاضر داره از برنامه استفاده میکنه
به جاش بزارید :
PHP:
$_POST['username']

chase.gif
 
  • Like
Reactions: SME

SME

Banned
آخه برای قسمت ارتباطش با دیتا بیس هم همین رو بزارم؟
 

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

بالا