در این قسمت به سراغ راه اندازی یک سیستم جستجو در فروشگاه اینترنتی با PHP می رویم و اصول طراحی و کد نویسی آن را با هم مرور می کنیم. همین ابتدا باید خدمت شما عزیزان این نکته را بگویم که سیستم جستجو فروشگاه اینترنتی با PHP ما بر اساس کلمات کلیدی پایه ریزی شده است.
ابتدا از فایل all_products یک save as بگیرید و نام آن را result.php می گذاریم. ابتدا باید all_products.php را با استفاده از Notepad++ باز کنیم. به تصویر زیر نگاه کنید.
سپس بر روی تب file بروید و گزینه save as را فشار دهید. به تصویر زیر نگاه کنید.
سپس در کادری که برای شما باز می شود در قسمت File name باید result را بنویسید و بر روی دکمه Save فشار دهید.
حالا فایل result.php ما ساخته شده است و مثل گذشته، کار اصلی با آرایه فوق سراسری $_GET انجام می شود. خب حالا باید در فایل result.php کد های زیر را پیدا کنید.
<?php global $con; //display products when not set cat_id and brand_id if((!isset($_GET['cat_id']))&&(!isset($_GET['brand_id']))){ $get_pro="select * from products"; $run_pro=@mysqli_query($con,"SET NAMES utf8"); $run_pro=@mysqli_query($con,"SET CHARACTER SET utf8"); $run_pro=mysqli_query($con,$get_pro); echo"<h2>تمامی محصولات فروشگاه جهانگیر پچکم</h2>"; while($row_pro=mysqli_fetch_array($run_pro)) { $pro_id=$row_pro['product_id']; $pro_cat=$row_pro['product_cat']; $pro_brand=$row_pro['product_brand']; $pro_title=$row_pro['product_title']; $pro_price=$row_pro['product_price']; $pro_desc=$row_pro['product_desc']; $pro_image=$row_pro['product_image']; echo" <div class='product_box'> <h3>$pro_title</h3> <img width='200' height='150' src='Admin_area/$pro_image' alt='image' /> <div class='price'>قیمت:<span>$pro_price تومان</span></div> <div class='buynow'><a href='#'>هم اکنون می خرید</a></div> <a href='details.php?product_id=$pro_id'>جزئیات</a> </div>"; } } ?>
آنها را پاک کنید و کدهای زیر را به جای آن قرار دهید.
<?php if(isset($_GET['search'])) { $search_qurey=$_GET['user_query']; $get_pro="select * from products where product_keywords like N'%$search_qurey%' "; $run_pro=@mysqli_query($con,"SET NAMES utf8"); $run_pro=@mysqli_query($con,"SET CHARACTER SET utf8"); $run_pro=mysqli_query($con,$get_pro); echo"<h2>$search_qurey</h2>"; while($row_pro=mysqli_fetch_array($run_pro)) { $pro_id=$row_pro['product_id']; $pro_cat=$row_pro['product_cat']; $pro_brand=$row_pro['product_brand']; $pro_title=$row_pro['product_title']; $pro_price=$row_pro['product_price']; $pro_desc=$row_pro['product_desc']; $pro_image=$row_pro['product_image']; echo" <div class='product_box'> <h3>$pro_title</h3> <img width='200' height='150' src='Admin_area/$pro_image' alt='image' /> <div class='price'>قیمت:<span>$pro_price تومان</span></div> <div class='buynow'><a href='index.php?add_cart=$pro_id'>هم اکنون می خرید</a></div> <a href='details.php?product_id=$pro_id'>جزئیات</a> </div>"; } } ?>
و بعد از آن به سراغ فایل index.php می رویم و کدهای زیر را در آن پیدا می کنیم.
<h4>Search</h4> <div class="templatemo_right_section_content"> <form method="get" action="#"> <input name="keyword" type="text" id="keyword"/> <input type="submit" name="submit" class="button" value="Search" /> </form> </div>
و آنها را حذف می کنیم و کدهای زیر را به جای آنها قرار می دهیم.
<h4>جستجو</h4> <div class="templatemo_right_section_content"> <form method="get" action="result.php"> <input name="user_query" type="text" id="keyword" placeholder="کلمه مورد نظر را وارد کنید."/> <input type="submit" name="search" class="button" value="جستجو" /> </form> </div>
به شما تبریک می گم، الان دیگر قسمت جستجوی شما تکمیل شده است. فقط کافی است که کلمه کلیدی یک محصول خاص را وارد نمایید، تا صفحه result.php برای شما نمایش داده شود. در ادامه به تحلیل این کدها می پردازیم.
اول از همه به کد زیر دقت کنید.
if(isset($_GET['search']))
این یک دستور شرطی است که در آن می گوییم که اگر دکمه "جستجو" زده شد آنگاه، کارهایی که در بلوک دستورات تعریف کرده ایم را انجام بده. خب حالا در بلوک دستورات چه چیزی داریم. یک خط کد به شکل زیر می بینید.
$search_qurey=$_GET['user_query'];
با استفاده از این دستور، کلمه ای را که مورد جستجو قرار گرفته از url بیرون می کشیم و در متغییر $search_qurey ذخیره می کنیم. کلمه user_query در دستور بالا با توجه به تگ input ورودی کاربر تنظیم شده است.
سپس به کد زیر توجه کنید:
$get_pro="select * from products where product_keywords like N'%$search_qurey%' ";
این خط قلب تپنده سیستم جستجو فروشگاه اینترنتی ما است. در واقع ما در اینجا از عملگر like در sql استفاده کرده ایم.
خب در مورد دستور شرطی where در SQL طبق تعریف سایت w3schools ، بدین صورت است که رکورد های به دست آمده از عبارت SELECT را فیلتر می کند. (رکورد های ما همان محصولات ما در جدول products می باشند.)
Syntax دستور شرطی WHERE در زیر آورده شده است.
SELECT column1, column2, ... FROM table_name WHERE condition;
دقت کنید که دستور WHERE محدود به SELECT نیست و در عبارات UPDATE و DELETE نیز می تواند مورد استفاده قرار گیرد.
ما وقتی از where استفاده می کنیم می توانیم با استفاده از عملگر like دنبال یک الگوی (pattern) خاص بگردیم و آن الگو را در ستون جواب (منظورم فیلد در جدول پایگاه داده و در اینجا "کلمات کلیدی" محصول است) اعمال کنیم و نتایج بیشتری را فیلتر نماییم. Syntax عملگر like به صورت زیر می باشد.
SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;
همانطور که مشاهده می نمایید بعد از Like باید pattern خود را بسازید برای ساخت pattern از دو علامت معروف استفاده می کنیم که عبارتند از:
علامت % که نشان دهنده یک یا صفر و یا چند کاراکتر است.
علامت _ (خط زیر یا همان underline خودمان) که نشان دهنده یک کاراکتر است فارغ از آنکه آن کارکتر چه چیزی است.
خب برای اینکه خیلی راحت منظورم رو درک کنید و تفاوت میان دو علامت % و _ را در عملگر like بفهمید، مثال های زیر رو نگاه کنید.
این دستور هر مقداری که با a شروع شود را پیدا می کند | WHERE CustomerName LIKE 'a%' |
این دستور هر مقداری که با a به پایان می رسد را برای ما پیدا می کند. | WHERE CustomerName LIKE '%a' |
این دستور برای ما هر مقداری که شامل or باشد را فارغ از مکان قرار گیری پیدا می کند. مهم نیست or کجا باشد فقط درونش or باشد. | WHERE CustomerName LIKE '%or%' |
این دستور برای ما مقادیری را پیدا می کند که حرف دومشان حتما باید r باشد. | WHERE CustomerName LIKE '_r%' |
این دستور برای ما مقادیری را پیدا می کند اولا 3 حرفی باشد و در ضمن با حرف a شروع شوند. | WHERE CustomerName LIKE 'a_%_%' |
خب به پایان این قسمت آموزشی امروز رسیدیم، در این جلسه مطالب بسیار مهمی را با هم دیدیم که فقط با کد زنی زیاد می تونید روی اونا مسلط بشین. پس یادتون نره که باید کدنویسی رو تکرار و تکرار کنید. در جلسه بعدی می خوام برای شما یک ایراد اساسی که از اول تا حالا انجام دادیم، برطرف کنم. جلسه بعدی رو از دست ندیدن. موفق باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.