شنبه 24 آذر 1397 | Saturday 15 th of December 2018 صفحه اصلی گروه الکترونیکی کامپیوتر
بخش 2-1 بخش مدیریت تقاضا

این بخش در تصویر زیر امده است.

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

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

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

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

show_db ($do, $table, $form, $stage)

پارامترهای تابع show_db:

$do: این پارامتر بیان کننده ی درخواست ها با توجه به statusاست می باشد این مقدار برای این حالت show  می باشد.

$table: این پارامتر بیان کننده ی جدولی است که درخواست های ان مورد بررسی قرار می گیرد.

$form  :چون این تابع برای چندین درخواست مورد استفاده قرار می گیرد این پارامتر نوع درخواست را مشخص می کند.

$stage: این پارامتر مشخص می کند درخواست های مورد بررسی در چه مرحله ی از بررسی قرار دارند البته این پارمتر برای درخواست خوابگاه کاربرد ندارد بلکه برای درخواست های کاربرد دارد که چندین مسئول بررسی نیاز دارند.

در این مرحله تابع فوق به صورت زیر فراخوانی می شود.

show_db ('show','bedroom','bedroom',' ');

پارامتر اول که مقدار showرا گرفته بیان می کند که درخواست هایی را ما نمایش می دهیم که وضعیت statusانها بررسی می باشد.

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

پارامتر چهارم برای این درخواست ها خالی می باشد چون یک مسئول پی گیری دارد.

اعمالی که تابع برای این حالت انجام می دهد در زیر امده است.

if(@ereg($do,'show'))

                        {

            if(@ereg($form,'bedroom'))$sql="select * from ".$table." where status='بررسی'";

}

 

در این قسمت چک می کند که پارامتر اول show  و پارامتر سوم bed room  باشد در این صورت درخواست های مشخص شده در دستور $sqlمورد بررسی قرار می گیرند.

در مرحله ی بعد داریم:

$res=mysql_query($sql);

$num=mysql_num_rows($res);

تعداد درخواست های با مشخصات بیان شده را در متغییر $numمی ریزد.

if($num==0)

{

echo '

نام کاربری وجود ندارد

';

 

if(@ereg($form,'bedroom')) echo '

';

 

}

 

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

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

برای حالت بالا داریم.

$info['1']='شماره دانشجویی';

$info['2']='نام';

$info['3']='فامیل';

$info['4']='رشته';

$info['5']='سال تقاضا';

$info['6']='ترم تقاضا';

$info['7']='شماره خوابگاه / درجه';

$info['9']='علت عدم پذیرش';

$info['10']='پذیرش/رد';

show_inform($info,10,$do);

همان طور که در بالا مشخص شده بعد از تکمیل ارایه ارایه جهت نمایش به تابع show_informارسال می کند.

در مرحله بعد باید اطلاعات از جدول به تابع ارسال شود.

while($row=mysql_fetch_array($res))

{

$id=$row['stu_id'];

$info['1']=$row['stu_id'];

$info['6']=$row['term'];

$info['5']=$row['year'];

$info['9']='show';

$info['7']=$row['grade']."/".$row['num_bedroom'];

$sql1="select * from userwhere id='$id'";$res1=mysql_query($sql1); while($row1=mysql_fetch_array($res1))

{

$info['2']=$row1['name'];

$info['3']=$row1['family'];

$info['4']=$row1['major'];

}

show_inform($info,9,$do);

}

if(@ereg($form,'bedroom')) {

echo 'پذیرش/رد') and @ereg($do,'show')) {?>

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

عنصر اخری در ارایه ی $info  مربوط به پذیرش یا عدم پذیرش و عنصر اولی در $infoشماره ی دانشجویی  پس کنترل می کنیم اگر عنصر اخر با مقدار پذیرش/رد برابر باشد این دو ورودی را ارسال می کنیم و نام هر دو ورودی را برابر با شماره ی دانشجویی قرار می دهیم.

حال باید تغییرات اعمال شود.فعالیت فرم بالا در صفحه ی admins.php  می باشد یعنی با فشردن کلید ارسال این قسمت که نام substatus   دارد باید تغییرات اعمال شود.

در صفحه ی admins.php   داریم:

if($_POST['substatus'])

            {

            $sql="select * from bedroom status='بررسی' ";

            $res=mysql_query($sql);

       

در این قسمت تمام درخواست هایی که شامل شرایط اولیه برای اعمال تغییرات در مرحله ی قبل را دارند پویش می شوند.

if(!$res)

                        exit('دسترسی به اطلاعات متقاضی امکان پذیر نیست');

while($row=mysql_fetch_array($res))

                        {

                        $user=$row['stu_id'];

                        $user2=$row['stu_id'].'text';

                        $re=$_POST[$user2];

                    

در این قسمت اطلاعات ارسالی از فرم قبل یعنی پذیرش/رد و علت عدم پذیرش در متغییر های $user  و$re  قرار می گیرد تا با توجه به مقادیر ارسالی تغییرات اعمال شود.

                               

if(@ereg($_POST[$user],'no'))

                                    {

                                                $sql="update bedroom set

                                                status='رد',

                                                freason='$re',

                                                num_bedroom='0'

                                                where stu_id='$user'";

                                    }

 

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

Statusمقدار رد را می گیرد .

علت عدم پذیرش در فیلد freason  ذخیره می شود.

مقدار قرار گرفته در فیلد num_bedroomبرابر صفر می شود تا در امار مربوط به ظرفیت پر شده در نظر گرفته نشود.

 

                                    elseif(@ereg($_POST[$user],'yes'))    {

                                                $sql="update bedroom set

                                                status='پذیرش'

                                                where stu_id='$user'";

                                                }

 

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

                                                           

                        if($_POST[$user])

                                                {

                                    $r=change_status($table,$user,$_POST[$user],$sql);//functions

                                                }

 

این قسمت ابتدا کنترل می کند که مقدار ارسال شده باشد و بعد از ان مقادیر را برایاعمال تغییرات به تابع change_statusارسال می کند و نتیجه ی تابع را در $r  می ریزد

 

                        }

if($r)

                        exit('

عملیات انجام شد

 

                        بازگشت');

                        else exit('

عملیات انجام شد

 

                        بازگشت');

            }

 

در این قسمت اجرا شدن تابع change_statusرا کنترل می کند و متناسب با ان جواب نهایی را می دهد.

تابع(  change_status($table,$user,$status,$sql:

$table: نام جدولی که قرار است تغییرات در ان اجرا شود را مشخص می کند.

$user  : کاربری که تغییرات برای درخواست او انجام می شود.

  $status: وضعیت درخواست را مشخص می کند.

$sql:دستوری که قرار است اجرا شود.

$res=mysql_query($sql)or die(mysql_error());

            if(!$res)

                        return false;

            else

                        return true;

دستور ارسالی اجرا می شود . در صورت درست اجرا شدن مقدار true  و در غیر این صورت مقدار false  برمی گردد.

قسمت بعدی که در بخش مدیریت تقاضا قرار دارد لیست افرادی است که با درخواست انها پذیرفته شده است.

 

 

فراخوانی تابع  show_dbبرای این حالت به صورت زیر می باشد.

 

if(@ereg($do,'bedroom-display4'))

            {

display_info();

            show_db('final','bedroom','bedroom','');//output

            exit();

            }

 

برای حالت بالا مقادیر قرار گرفته در ارایه ی $info  به قرار زیر است.

$info['1']='شماره دانشجویی';

$info['2']='نام';

$info['3']='فامیل';

$info['4']='رشته';

$info['5']='سال تقاضا';

$info['6']='ترم تقاضا';

$info['7']='درجه';

$info['8']='شماره خوابگاه ';

 

show_inform($info,10,$do);

 

همان طور که در بالا مشخص شده بعد از تکمیل ارایه ارایه جهت نمایش به تابع show_informارسال می کند.

 

while($row=mysql_fetch_array($res))

{

$id=$row['stu_id'];

$info['1']=$row['stu_id'];

$info['6']=$row['term'];

$info['5']=$row['year'];

$info['7']=$row['grade'];

$info['8']= $row['num_bedroom'];

$sql1="select * from userwhere id='$id'";$res1=mysql_query($sql1); while($row1=mysql_fetch_array($res1))

{

$info['2']=$row1['name'];

$info['3']=$row1['family'];

$info['4']=$row1['major'];

}

show_inform($info,9,$do);

}

 

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

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

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

 

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

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

این امکان زمانی اهمیت پیدا می کند که مسئول اشتباهی درخواست دانشجو را پذیرفته است و یا دانشجو به صورت حضوری مشکلات موجود را بر طرف کند.

البته در صورتی که رد شدن درخواست به علت پر بودن ظرفیت نبوده باشد .

فراخوانی تابع  show_dbبرای این حالت به صورت زیر می باشد.

if(@ereg($do,'bedroom-display4'))

            {

display_info();

            show_db('rejected','bedroom','bedroom','');//output

            exit();

            }

 

برای حالت بالا مقادیر قرار گرفته در ارایه ی $info  به قرار زیر است.

$info['1']='شماره دانشجویی';

$info['2']='نام';

$info['3']='فامیل';

$info['4']='رشته';

$info['5']='سال تقاضا';

$info['6']='ترم تقاضا';

$info['7']='درجه';

$info['8']='شماره خوابگاه ';

$info['10']='پذیرش';

show_inform($info,10,$do);

همان طور که در بالا مشخص شده بعد از تکمیل ارایه ارایه جهت نمایش به تابع show_informارسال می کند.

while($row=mysql_fetch_array($res))

{

$id=$row['stu_id'];

$info['1']=$row['stu_id'];

$info['6']=$row['term'];

$info['5']=$row['year'];

$info['7']=$row['grade'];

$info['8']= $row['num_bedroom'];

$sql1="select * from user where id='$id'";$res1=mysql_query($sql1); while($row1=mysql_fetch_array($res1))

{

$info['2']=$row1['name'];

$info['3']=$row1['family'];

$info['4']=$row1['major'];

}

show_inform($info,9,$do);

}

if(@ereg($do,'rejection'))

{

if(@ereg($form,'bedroom')) echo 'پذیرش') and @ereg($do,'rejection')) {?>

 

}

 

در صورتی که عنصر اخری برابر 'پذیرش'باشد و متغییر $doبرابر 'rejection'باشد یک ورودی از نوع radio   داریم تا درخواست ها را تغییر وضعیت دهد.

 

در این صفحه با کلیک روی کلید ارسال متغییر  $_POST[' changestatus ']را به صفحه admins.php  می فرستد که در انجا برای عملیاتی شدن هدف بالا داریم.

 

if($_POST['changestatus'])

            {

 

کنترل می کند تا متغییر  $_POST['changestatus']ارسال شده باشددر این صورت داریم.

           

$sql="select * from bedroom

where status='رد' ";

$res=mysql_query($sql);

            if(!$res)

                        exit('دسترسی به اطلاعات متقاضی امکان پذیر نیست');

در این قسمت دانشجویانی که دارای  شرایط اولیه جهت اعمال تغییرات هستند را پویش می کند.

                        while($row=mysql_fetch_array($res))

                                    {

                                    $user=$row['stu_id'];

                                    if(@ereg($_POST[$user],'yes'))

                                    {

                                   

در این قسمت کنترل می شود تا دانشجویانی که دارای شرایط اولیه هستند کدام یک برای تغییر وضعیت مشخص شده اند.در این صورت برای ان ها دستور زیر که شامل تغییرات است اجرا می شود

$sql="update bedroom  set

                                    status='پذیرش'

                                    where stu_id='$user'";

                                    }

                                 

دانشجویانی که نام انها برای تغییرات اعلام شده است در فیلد statusمربوط به انها به جای رد پذیرش قرار می گیرد.

if($_POST[$user])

            {

$r=change_status($table,$user,$_POST[$user],$sql);

            }

}

تغییرات مد نظر را اجرا می کند و جواب تغییرات را در متغییر $r  می ریزد و در ادامه با توجه به جواب ان در زیر پیام مناسب را ارسال می کند.

if($r)

exit('

عملیات انجام شد

 

بازگشت');

else exit('

عملیات انجام نشد

 

بازگشت');

}

 

 

  

Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26