جستجو برای:
  • خانه
  • مقالات
    • مقالات مشاوره‌ای/توضیحی
    • پایتون
    • HTML5
    • CSS3
    • PHP & MySQL
    • پایگاه داده (database)
  • شروع برنامه نویسی از صفر تا کسب درآمد
  • درباره ما
  • تماس
    • تماس با ما
    • پیشنهاد آموزش
یادیفای
  • خانه
  • مقالات
    • مقالات مشاوره‌ای/توضیحی
    • پایتون
    • HTML5
    • CSS3
    • PHP & MySQL
    • پایگاه داده (database)
  • شروع برنامه نویسی از صفر تا کسب درآمد
  • درباره ما
  • تماس
    • تماس با ما
    • پیشنهاد آموزش
0

ورود و ثبت نام

چطور یک فرم جستجو با PHP بسازیم؟ (راهنمای کامل ویدئویی)

24 ژانویه 2019
ارسال شده توسط مهدی خسروی
PHP & MySQL ، برنامه نویسی وب ، بک اند (Back End) ، مقالات مشاوره‌ای/توضیحی
688 بازدید
فرم جستجو با PHP

بسیاری از کاربرانی که آموزش ساخت فروشگاه اینترنتی حرفه ای با PHP و MySQL را تهیه کرده بودند این سوال برایشان وجود داشت که چطور میتوانند یک فرم جستجو با PHP بسازند. در این آموزش یاد میگیریم که چطور یک فرم جستجو با PHP بسازیم و کاری کنیم که اگر کاربر خواست چیزی را در بین محصولات، کاربران و… جستجو کند، بتواند اینکار را انجام دهد.

دانلود این آموزش با کیفیت بالا و حجم ۲۷ مگ


چطور در دیتابیس جستوجو کنیم؟

مهم ترین چیز در ساخت فرم جستجو با PHP این است که ما بتوانیم یک دستور SQL به دیتابیس بزنیم و بین اطلاعاتی که در دیتابیس وجود دارد جستوجو کنیم. (دیتابیس چیست؟)

فرض کنید که یک فروشگاه اینترنتی داریم که محصولاتی با نام های زیر در آن وجود دارد:

  • آیفون ۷ طوسی
  • دست دوم: ایفون ۷
  • آیفون ۷ رز گلد 
  • آیفون ۷

برای اینکه بتوانیم در دیتابیس جستجو کنیم، میتوانیم از دستور LIKE استفاده کنیم. برای مثال به کد زیر دقت کنید:

SELECT * FROM products WHERE product_name LIKE 'آیفون ۷'

این کد در جدول prodcuts و در ستون product_anem دقیقا به دنبال محصولی با نام «آیفون ۷» میگردد. اما اگر اسم محصول «آیفون ۷ طوسی» باشد‌، این دستور نمیتواند آن‌را پیدا کند. پس چیزی که دستور بالا برای ما پیدا میکند، دقیقا همان آیفون ۷ است.

برای اینکه بتوانیم دستوری بنویسیم که نسبت به کاراکترهای قبل و بعد عبارتی که جستجو میکنیم حساس نباشد، باید به این صورت عمل کنیم:

SELECT * FROM products WHERE product_name LIKE '%آیفون ۷%'

در این دستور قبل و بعد از عبارتی که میخوایم جستجو کنیم یک علامت % (درصد) قرار داده‌ایم. این علامت این پیام را به دیتابیس میدهد: «مهم نیست قبل و بعد از عبارت آیفون ۷ چه چیزی وجود داشت، هرچیزی که بود را برای ما نمایش بده. دستور بالا برای ما تمام موارد زیر را پیدا میکند:

  • آیفون ۷ طوسی
  • دست دوم: ایفون ۷
  • آیفون ۷ رز گلد 
  • آیفون ۷
مقاله‌ی مرتبط: Back End چیست و به چه کسی برنامه نویس بک اند میگویند؟

به این دلیل که قبل و بعد از دستور SQL خود از علامت % استفاده کردیم و این دستور، هر محصولی که عبارت «آیفون ۷» در جایی از نام آن وجود داشته باشد را برای ما نمایش میدهد. با توجه به این نکات، در ادامه میپردازیم به آموزش ساخت فرم جستجو با PHP.

 

آموزش کامل ساخت فرم جستجو با PHP

با مقدمه‌ای که در بالا گفتیم، حالا میخواهیم اقدام به ساخت فرم جستجو با PHP کنیم. برای اینکار یک فایل با نام index.php میسازیم و کدهای زیر را در آن مینویسیم:

<?php $db = mysqli_connect('localhost','yadify','12345','yadify_users'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Create Search Form</title>
</head>
<body>

	<form action="index.php" method="post">
		<input type="text" name="query" placeholder="search here ....">
		<input type="submit" name="search" value="do-search">
	</form>
	
</body>
</html>

<?php 
if(isset($_POST['search'])){
	$searchQuery = $_POST['query'];
	$getUsers = mysqli_query($db, "SELECT * FROM users WHERE display_name LIKE '%$searchQuery%'");

	while($row = mysqli_fetch_array($getUsers)){
		echo $row['display_name'] . "<br>";
	}
}
?>

در ادامه جاهایی که از این کد نیاز به توضیح دارد را درباره‌ی آن صحبت میکنیم:

خط ۱: اتصال‌مان به دیتابیس را برقرار کرده‌ایم.

خط های ۱۰ تا ۱۳: یک فیلد برای جستوجو و همینطور یک دکمه برای انجام جستوجو ساخته‌ایم و محتویات فرم را با متد post به همین فایل ارسال کرده‌ایم که از انتهای فایل آن‌ها را بررسی کنیم.

اگر میخواهید درباره‌ی متد post و تفاوت آن با متد get بدانید اینجا کلیک کنید.

همینطور اگر کار با فرم ها در PHP را بلد نیستید، آموزش ۳ قسمتی ساخت سیستم ورود، ثبت نام و پروفایل مخصوص شماست 🙂

خط ۱۹: چک کرده‌ایم که آیا اطلاعات فرم تایید شده است یا نه.

خط ۲۰: مقدار ورودی کاربر را که در فیلد جستجو وارد کرده بود را درون متغیر searchQuery قرار داده‌ایم.

خط ۲۱: یک کوئری به دیتابسی زده‌ایم و به دنبال چیزی گشته‌ایم که کاربر آن‌را وارد کرده‌ بود. (به علامت % قبل و بعد از مقدار ورودی کاربر دقت کنید.)

و نهایتا در خطوط ۲۳ تا ۲۵ اطلاعات دریافتی از پایگاه داده را به یک آرایه تبدیل کرده‌ایم و درون حلقه‌ی while قرار داده ایم و به کاربر نتیجه‌ را نشان داده‌ایم. 

مقاله‌ی مرتبط: گاو بنفش چیست و چطور به شما کمک میکند که موفق‌ترین باشید؟

حالا فرض کنید که مقادیر زیر به عنوان نام کاربران در دیتابیس ما وجود دارد:

  • مهدی رضایی
  • حسن محبی
  • حسن رضایی
  • رضا سامانی
  • سامان قدوسی
  • مهدی خسروی
  • خسرو مهدوی

و حالا اگر کاربر در فیلد جستجو مقدار «رضا» را وارد کند، نتایج زیر به او نشان داده میشود:

  • مهدی رضایی
  • حسن رضایی
  • رضا سامانی

پس توانستیم به همین راحتی اقدام به ساخت یک فرم جستجو با PHP و MySQL کنیم و آن‌را به هر سیستمی که دوست داریم اضافه کنیم. اگر دوست دارید که PHP و MySQL را بصورت پروژه محور یاد بگیرید، این آموزش مخصوص شماست:

آموزش ساخت یک فروشگاه اینترنتی حرفه‌ای با PHP و MySQL

 

اشتراک گذاری:
برچسب ها: mysqlphp
درباره مهدی خسروی

۸ سال پیش که یادگیری برنامه نویسی رو آغاز کردم، با یک مشکل بزرگ مواجه شدم: کمبود منابع آموزشی حرفه‌ای و کاربردی به زبان فارسی. به همین دلیل، بعد از چندین سال فعالیت حرفه‌ای در زمینه‌ی برنامه نویسی، تصمیم گرفتم دانسته‌ها و تجربیات خودم را با شما عزیزان به اشتراک بگذارم. پیشنهاد میکنم به آدرس yadify.com/gifts حتما سر بزنید :)

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

مطالب زیر را حتما مطالعه کنید

آیا برنامه نویسی سخته؟
آیا یادیگری برنامه نویسی سخته؟ 🤯 من نمیتونم! (از ترس تا کد)
Full Stack چیست
Full Stack چیست و به چه کسی برنامه نویس فول استک میگویند؟
ساخت ربات تلگرام
ساخت ربات تلگرام با پایتون (+درآمد میلیاردی بات‌های ایرانی)
کسب درآمد با برنامه نویسی تلگرام
MVC چیست و چه کاربردی دارد؟ + مثال
لاراول یا کداگنایتر؟ کدوم رو برای یادگیری انتخاب کنیم؟
قدیمی تر چطور ۱۰ زبان برنامه نویسی را در ۱ ماه یاد بگیریم؟
جدیدتر راهنمای کامل اتصال به دیتابیس در PHP (فیلم آموزشی)

5 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • مهدی گفت:
    ۱۰ فروردین ۱۳۹۸ در ۱۰:۱۳

    با سلام .
    البته اگه بخواین فارسی رو تو جستجو پیدا کنه حتماً تو فایل بعد از کانکت شدن به دیتا بیس این خطوط را باید اضافه کرد.
    mysqli_query($db,”SET character_set_results=utf8;”);

    mysqli_query($db,”SET character_set_client=utf8;”);

    mysqli_query($db,”SET character_set_connection=utf8;”);

    mysqli_query($db,”SET character_set_database=utf8;”);
    mysqli_query($db,”SET character_set_server=utf8;”);

    پاسخ
  • یونس گفت:
    ۴ دی ۱۳۹۸ در ۲۱:۳۱

    پسر تو واقعا عالی هستی، مرسی که هستی، تشکر از اینکه هم ویدیو رو قرار دادی و هم سورس

    پاسخ
  • رضا گفت:
    ۶ بهمن ۱۳۹۸ در ۲۲:۲۹

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

    پاسخ
  • محمد گفت:
    ۱۲ بهمن ۱۳۹۸ در ۲۲:۳۷

    با سلام خیلی مفید بود

    پاسخ

دیدگاهتان را بنویسید لغو پاسخ

This site uses Akismet to reduce spam. Learn how your comment data is processed.

مطالب مرتبط

آیا یادیگری برنامه نویسی سخته؟ 🤯 من نمیتونم! (از ترس تا کد)

Full Stack چیست و به چه کسی برنامه نویس فول استک میگویند؟

ساخت ربات تلگرام با پایتون (+درآمد میلیاردی بات‌های ایرانی)

کسب درآمد با برنامه نویسی تلگرام

MVC چیست و چه کاربردی دارد؟ + مثال

جستجو برای:
.: روی یادگیری‌تان سرمایه‌گذاری کنید :.
  • مكان گيرنده
    فول کورس مسترکلاس توسعه وب
  • مكان گيرنده
    دوره آموزش برنامه نویسی پی اچ پی
.: نظرات کاربران :.
  • اکانت دمو در دوره آموزش برنامه نویسی پی اچ پی
  • مهدی خسروی در طراحی وب چیست؟ همه چیز درباره‌ی طراحی وب سایت (Web Design)
  • فاطمه در طراحی وب چیست؟ همه چیز درباره‌ی طراحی وب سایت (Web Design)
  • دوست در Stack Overflow چیست؟ همه چیز درباره‌ی استک اورفلو
  • مهدی خسروی در با ۱۴ پیش نیاز برنامه نویسی آشنا شوید! (+فیلم)
  • مهدی خسروی در PHP چیست؟ همه چیز درباره‌ی PHP و کاربرد آن
.: تماس با ما :.

ما به داشتن دوستان خوبی مثل شما افتخار میکنیم و بسیار خوشحال میشویم که پاسخگوی سوال‌هایتان باشیم. برای تماس با ما میتوانید از راه‌های زیر استفاده کنید:

+ آیدی پشتیبانی تلگرامی: yadify_support@

داستان یادیفای

از سال 1393 که فریلنسری برنامه نویسی رو شروع کردم، همیشه دوست داشتم که چیزهایی که یاد میگیرم رو با بقیه به اشتراک بذارم. که هم خودم بهتر یاد بگیرم و هم بتونم به بقیه کمکی کرده باشم.
مخصوصا اون موقع که محتوای تخصصی برنامه نویسی به زبان فارسی خیلی کم بود.
با xanbil.com شروع کردم به تولید محتوا و بعد از 3 سال به yadify.com رسیدیم.
جایی که در کنار هم سعی میکنیم برنامه نویسی رو به عنوان یه تخصص درآمدزا و خفن باهم یاد بگیریم و پیشرفت کنیم ...

دسترسی سریع
  • مقالات آموزشی
  • نقشه مسیر برنامه نویسی
  • مسترکلاس توسعه وب
  • درباره یادیفای
  • تماس با ما
چنل یوتوب برنامه نویسی پیج اینستاگرام
ساخته شده با و در یادیفای - از 1395

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت