• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
گنجاندن if در پرس و جوها
#1
سلام دوستان
در زمینه پایگاه داده یک مشکلی دارم. در مورد گنجاندن شرط منطقی در پرس و جوها.
شرح مسئله:
جدولی به نام post به شرح زیر داریم(که جزئیات در عکسی که ضمیمه شده وجود داره):
id,title,user_id,state
جدول کاربران هم فیلد type اگر برابر 1 باشد یعنی کاربر مدیر کل است.
کوئری مد نظر:
از بین پست ها: اگر کاربر مدیر کل بود-> تمام پست ها در خروجی لیست شود. در غیر اینصورت-> اگر وضعیت پست یا همان state برابر 1 بود: تمام پست ها لیست شود . و اگر وضعیت پست برابر 0 بود پست های مربوط به همان کاربر لیست شود.

چطوریاست؟


فایل‌های پیوست تصاویر بندانگشتی
   
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :
#2
شما اول یه کوئری میگیری ببینی کاربر فعلی مدیر هست یا نه .
کد پی‌اچ‌پی:
$id = (int) $_SESSION['id'];
$user $db->query("select * from user where id={$id}")->row();

if(
$user['type']==1)
{
    
$qr "select * from post";
}
else
{
    
$qr "select * from post where state=1 or (state=0 and user_id=$id) ";
}

$data $db->query($qr)->result();
print_r($data); 
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : sara147
#3
http://dev.mysql.com/doc/refman/5.5/en/c...tions.html
http://dev.mysql.com/doc/refman/5.5/en/if.html
http://stackoverflow.com/questions/59511...-statement
  پاسخ
تشکر شده توسط :
#4
(۱۳۹۳ تير ۱۲, ۰۱:۱۷ ب.ظ)Reza نوشته: شما اول یه کوئری میگیری ببینی کاربر فعلی مدیر هست یا نه .
کد پی‌اچ‌پی:
$id = (int) $_SESSION['id'];
$user $db->query("select * from user where id={$id}")->row();

if(
$user['type']==1)
{
    
$qr "select * from post";
}
else
{
    
$qr "select * from post where state=1 or (state=0 and user_id=$id) ";
}

$data $db->query($qr)->result();
print_r($data); 

ممنون. درست شد.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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