تکنولوژی:PHP
پایگاه داده:My SQL
مقدمه:
هدف ازطراحی وب سایت اطلاع رسانی سینما این بود که این وب سایت بتواند خواسته های کاربران را تا حدی برآورده کند وهمچنین با تکنولوژی های امروزه درصدد تحقق اهداف برآید.
ما به کمک پایگاه داده MySQL و تکنولوژی PHP توانستیم وب سایت خود را راه اندازی کنیم ودراین راستا از برنامه هایی مانند: Macromedia Dream weaver MX 2004 برای طراحی سایت وRational Rose Enterprise Edition برای تجزیه وتحلیل سیستم استفاده کردیم.
دراین Documents تلاش شده تا تمامی نکات راجع به وب سایت ذکر شود و همچنین توضیحات کامل درمورد برنامه نویسی،تجزیه تمامی قسمت های سیستم به کمک UML و تصاویری از اجرای هر قسمت از وب سایت را شامل می شود.
تحلیل نیازهای مقدماتی:
امکاناتی که این وب سایت برای کاربران فراهم می کند عبارتند از:
اطلاع رسانی در مورد سینما ها:
دراین قسمت توضیحاتی درمورد سینماهای شهرتهران بیان شده که شامل موارد ذیل می باشد:
نام سینما
تعداد صندلی
آدرس
تلفن
فیلم های در حال اکران :
دراین صفحه اطلاعات ذیل به چشم می خورد:
نام سینما
نام فیلم
تاریخ شروع
تاریخ پایان
سانس
جستجو:
جستجو طبق انتخاب کاربرکه ممکن است براساس : سینما ،فیلم ،بازیگر،نویسنده وکارگردان باشد ،صورت می گیرد.
رزرو بلیت:
درصفحه رزرو ابتدا کاربرباید فیلم مورد نظرخود را جستجو کند وازاطلاعات بدست آمده ازجستجو برای رزرو استفاده کند، درصورت ورود کامل موارد خواسته شده اطلاعات وی درسیستم ذخیره میگردد.
Use case Diagram:
Sinema Class Diagram:
و...
Film Class Diagram
شمای بانک اطلاعاتی:
پایگاه داده شامل 4 جدول است که به شرح زیراست :
Tb_film : دارای فیلدهای زیرمی باشد:
Num_film : شماره فیلم
Name_film : نام فیلم
Time_film : مدت زمان فیلم
Name_writer : نام نویسنده
Name_director : نام کارگردان
Actor1 : بازیگرنقش اول
Actor2 : بازیگرنقش دوم
Actor3: بازیگر نقش سوم
شماره فیلم ومدت زمان فیلم فیلد کلیدی هستند.
Tb_sinema: دارای فیلد های زیر می باشد:
Num_sinema : شماره سینما
Name_sinema : نام سینما
: Tel تلفن
Address : آدرس
Number_chair : تعداد صندلی
شماره فیلم وتعداد صندلی فیلد کلیدی هستند.
Tb_reserve : دارای فیلد های زیر می باشد:
Name_fam_customer : نام و نام خانوادگی مشتری
Num_sinema : شماره سینما
Num_film : شماره فیلم
Sans : سانس
Date_reserve : تاریخ رزرو
Number_ticket : تعداد بلیط
تمامی فیلد ها، فیلد کلیدی هستند.
Tb_sinema_film : دارای فیلد های زیر می باشد:
Num_sinema : شماره سینما
Num_film : شماره فیلم
Date_start : تاریخ شروع
Date_end : تاریخ پایان
Sans : سانس
Ekran : آیا فیلم اکران می شود یا خیر؟
تمامی فیلد ها، فیلد کلیدی هستند.
Source Code های برنامه:
اتصال پایگاه دادهMySQL به برنامه:
Php
$host = "local host";
$username = "root";
$password = "";
$database = "sinema";
mysql_connect ($host, $username, $password) or die (“Error: “. mysql_error ());
mysql_select_db ($database);
?>
Host: نام مکانی که پایگاه داده ازآنجا شروع به کار می کند.
Username: نام کاربر
Password: کلمه عبور که درPhp تهی است.
Database: نام پایگاه داده ای که درMySQL ساخته ایم ومی خواهیم آن را بهPhp ربط دهیم.
Mysql_connect: تابع برای اتصال به Wamp
Die: برای چاپ پیغام خطا
: . Mysql_error () خطی که خطا دارد را برمی گرداند، نقطه (.) باعث می شود که رشته ها به هم وصل شود.
Mysql_select_db: برای اتصال به پایگاه داده ای که نامش ذکر می شود.
جستجو در داخل سایت : Google
متد GET: یکی ازروش های ارسال داده های فرم به اسکریپت سرویس دهنده می باشد،این متد هم اتصال به صفحه Google را انجام می دهد و هم صفحه را نشان می دهد.
Class="txt_text”: یک Style به نام txt_text در ابتدا برنامه تعریف کرده ایم که مربوط به فرمت Font ها است.
Name=src_google: در نوار آدرس به این شکل می شود،ونامی که جستجو می کنیم بعد از این نام می آید:
http://www.google.com/search?src_google=n&hl=en&btnG
نمایش اطلاعات سینما :
Php
Require once ("connect/connect.php");
$STR="SELECT * FROM `tb_sinema`;”
$result=mysql_query ($STR);
If (isset ($result) or mysql_num_rows ($result)>0) {
While ($row = mysql_fetch_object ($result)) {
$name_sinama =$row->name_sinema;
$tel=$row->tel;
$address=$row->address;
$number_chair=$row->number_chair;
Print "
";
Print "
". $number_chair." | ";
Print "
". $address." | ";
Print "
". $tel." | ";
Print "
". $name_sinama.” | ";
Print "
";
}
}
?>
Require once: برای صدا زدن فایل است، که اگر فایل را پیدا نکرد خارج می شود.
$STR="SELECT * FROM `tb_sinema`;”: * باعث می شود کل جدول sinema انتخاب شود.
: Mysql_query دستورات SQL را اجرا می کند.
Isset:
Mysql_num_rows: چه تعداد سطر در متغیر قرار دارد.
: Mysql_fetch_object یک سطر از داده ها را از جدول پایگاه داده می خواند چون داده ها در جدول به صورت آرایه ای است.
نمایش فیلم های در حال اکران :
Php
Require once ("connect/connect.php");
$STR="select * from
(`tb_sinema` INNER JOIN `tb_sinema_film`) INNER JOIN `tb_film`
ON (`tb_sinema`. `num_sinema`=`tb_sinema_film`. `num_sinema`)
AND (`tb_sinema_film`. `num_film`=`tb_film`. `num_film`)
WHERE `tb_sinema_film`. `ekran`='yes';";
?<
INNER JOIN: جدول ها را به هم ارتباط می دهد.
جستجو:
Php
require_once ("connect/connect.php");
$select=$_POST ["select"];
$txt=$_POST ["txt"];
If (isset ($txt)) {
If ($txt! =""){
If (isset ($select)) {
If ($select! ="" ){
If ($select=="فیلم") {
$STR="SELECT * FROM `tb_film` WHERE `name_film` LIKE '". $txt."';";
$result=mysql_query ($STR);
If (isset ($result) and (mysql_num_rows ($result)>0)) {
Print "
";
Print "
";
Print " ";
Print " ";
Print " "."زمان فیلم"." | ";
Print " "."بازیگر نقش سوم"." | ";
Print " "."بازیگر نقش دوم"." | ";
Print " "."بازیگر نقش اول"." | ";
Print " "."کارگردان"." | ";
Print " "."نویسنده"." | ";
Print " "."نام فیلم"." | ";
Print " ";
While ($row=mysql_fetch_object ($result)) {
$film=$row->name_film;
$writer=$row->name_writer;
$time=$row->time_film;
$director=$row->name_director;
$actor1=$row->actor1;
$actor2=$row->actor2;
$actor3=$row->actor3;
Print " ";
Print " ". $time." | ";
Print " ". $actor3." | ";
Print " ". $actor2." | ";
Print " ". $actor1." | ";
Print " ". $director." | ";
Print " ". $writer." | ";
Print " ". $film." | ";
Print " ";
}
Print " ";
Print " | ";
Print "
";
}
Else {
?>
متدpost : یکی دیگرازروش های ارسال داده های فرم به اسکریپت سرویس دهنده
می باشد،این متد اتصال را به صفحه ی موردنظرانجام می دهد ولی نشان نمی دهد.
:Alertکادری را برای نمایش پیغام ایجاد می کند.