رفتن به مطلب
محسن مشهدی

نحوه ارتباط با دیتابیس

پست های پیشنهاد شده

سلام

من چندی پیش مشکلی رو در انجمن مطرح کردم و یکی از دوستان راهنمایی کرد اما:

من مشکلم هنوز حل نشده توضیح میدم و امیدوارم دوستان راهنمایی بفرماین

این کد من هست:

<?php

                   $user =& JFactory::getUser();

       $userid =$user->id;

       $db =& JFactory::getDBO();

       $sql = "SELECT * FROM #__community_users WHERE userid=$userid";

       $db->setQuery($sql);

       $result = $db->loadObjectList();



       if ($result[0]->profile_id == 2){

        echo "بیمار" ; 

       }else{

        echo $totalfriends ; 

       }





?>


انتخاب جدول اس کیو الم درسته و همینو می خوام

کد PHP:

$sql = "SELECT * FROM #__community_users

و دقیقا هم همین شرط رو می خوام

کد PHP:

if ($result[0]->profile_id == 2){

echo "بیمار" ;

}else{

echo $totalfriends ;

}

اما کد من که در ابتدا عرض کردم برا زمانی هست که یه کاربر وارد سایت میشه و این کدها عمل میکنه

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

در واقع من فک میکنم این کد میگه اگه کاربری با یه ای دی وارد شد و پروفایل

ای دی 2 داشت شرط اول و اگر یه کاربر وارد شد و پروفایل ای دی 1 داشت شرط

دوم برقرار شه که اینو من نمی خوام . من می خوام بگم اگه کسی صفحه مربوط به

کاربری رو دید که در جدول اس کیو ال پروفایل ای دی 2 بهش اختصاص داده شده

بود شرط اول برقرار باشه

با تشکر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

دوست عزیز شما میگین قسمت دوم شرطتون (else) برای کاربر با id==1 کار میکنه ولی اینطور نیست، این قسمت برای هر کاربری که id != 2 باشه اجرا خواهد شد

در ضمن برای هر قسمتی که میخوایید در هر حالت اجرا بشه کافیه شرط نذارید، در این صورت در هر حالت اجرا خواهد شد

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

دوست عزیز شما میگین قسمت دوم شرطتون (else) برای کاربر با id==1 کار میکنه ولی اینطور نیست، این قسمت برای هر کاربری که id != 2 باشه اجرا خواهد شد

در ضمن برای هر قسمتی که میخوایید در هر حالت اجرا بشه کافیه شرط نذارید، در این صورت در هر حالت اجرا خواهد شد

ممنونم از پاشختون اما منظور من این نیست شاید بد توضیح دادم

ببینین من از جومشویال استفاده می کنم و کاربران رو به دو گروه تقسیم کردم که هر کدوم پروفایل ای دی خودشون رو دارن.

حالا من می خوام اگه کسی رفت پروفایل کاربران گروه اول رو دید با کاربران گروه دو متفاوت باشه. این مسئله نمی خوام حتما کاربر وارد بشه بعد این اتفاق بیافته . می خوام هرکسی که جستجو کرد و پروفایل کاربر رو دید این اتفاق بیافته

بعنوان مثال :

وقتی شما این کاربر رو می بینیند :

http://www.designer20.ir/site/salamat/index.php/%D8%AF%D8%A7%DB%8C%D8%B1%D9%87-%D8%B3%D9%84%D8%A7%D9%85%D8%AA/43-/profile

با پروفایل این کاربر متفاوت باشه:

http://www.designer20.ir/site/salamat/index.php/%D8%AF%D8%A7%DB%8C%D8%B1%D9%87-%D8%B3%D9%84%D8%A7%D9%85%D8%AA/44-/profile

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب شما مبفرمایید کاربران گروه اول و گروه دوم، شما کاربران گروه اول و گروه دوم رو با چه مشخصه ای از هم متمایز کردین؟

بعنوان مثال: فرض کنید کاربران شما یه فیلد دارند مثل Group که نوعشون رو مشخص میکنه

در این حالت شما باید توی شرطتون، Group برای کاربران رو بررسی کنید

مثال:

 if($user['Group'] == "گروه اول")
دستورات مربوط به گروه اول
else if($user['Group'] == "گروه دوم")
دستورات مربوط به گروه دوم

درحالت کلی باید یه فیلد متمایز کردن کاربران باید موجود باشه، سپس از طریق اون بررسی کنید

موفق باشید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب شما مبفرمایید کاربران گروه اول و گروه دوم، شما کاربران گروه اول و گروه دوم رو با چه مشخصه ای از هم متمایز کردین؟

بعنوان مثال: فرض کنید کاربران شما یه فیلد دارند مثل Group که نوعشون رو مشخص میکنه

در این حالت شما باید توی شرطتون، Group برای کاربران رو بررسی کنید

مثال:

 if($user['Group'] == "گروه اول")
دستورات مربوط به گروه اول
else if($user['Group'] == "گروه دوم")
دستورات مربوط به گروه دوم

درحالت کلی باید یه فیلد متمایز کردن کاربران باید موجود باشه، سپس از طریق اون بررسی کنید

موفق باشید

با profile_id مجزا شدن

یعنی در دیتابیس در جدول #__community_users فیلد profile_id وجود داره که کاربران یا profilr_id=1 هستن یا ==2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب حالا سه حالت داریم

1 - دستوراتی رو میخوایید برای گروه های با id==2 اجرا کنید که میشه این شرط:

if($userid == 2)
  دستورات...

2- دستوراتی رو میخوایید برای گروه های با id==1 اجرا کنید که میشه این شرط:

if($userid == 1)
  دستورات...

منظور از $userid همون فیلد جداکننده هستش

3- دستوراتی رو میخوایید برای تمام کاربران اجرا کنید، در این حالت نیاز به شرط نیست و دستورات خودتون رو بدون شرط قرار بدین تا برای تمام گروه ها اجرا بشه

موفق باشید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خب حالا سه حالت داریم

1 - دستوراتی رو میخوایید برای گروه های با id==2 اجرا کنید که میشه این شرط:

if($userid == 2)
  دستورات...

2- دستوراتی رو میخوایید برای گروه های با id==1 اجرا کنید که میشه این شرط:

if($userid == 1)
  دستورات...

منظور از $userid همون فیلد جداکننده هستش

3- دستوراتی رو میخوایید برای تمام کاربران اجرا کنید، در این حالت نیاز به شرط نیست و دستورات خودتون رو بدون شرط قرار بدین تا برای تمام گروه ها اجرا بشه

موفق باشید

ممنون از اینکه پاسخ میدین اما من با شرط مشکلی ندارم اون اتصالی که باید به دیتابیس بشه و این فیلد رو بتونه تشخیص بده سوالمه که تو پست اول عرض کردم . شرط من ایرادی نداره حتی همون کد پست اول برای من کار میکنه اما اشتباه کار میکنه . اشتباه از اینرو که کاربر با profile_id ==2 اگه لاگین بشه شرط انجام میشه

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

بازم ممنون از شما دوست خوب

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

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

در مورد شرط هم که فرمودین مشکلی ندارین، با فیلد مربوطه بررسی میکنید

دیگه چیزی برای گفتن نمیمونه دوست من!

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...