آموزش رایگان PHP

آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)

1405/05/13 21:26 محراب حسن زاده
آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)

مقدمه: چرا بهینه‌سازی سیستم جستجو در دیتابیس اهمیت دارد؟

یکی از ارکان اصلی هر وب‌سایت پویا، سیستم جستجوی آن است. کاربران برای یافتن سریع مطالب یا محصولات خود به کادر جستجو مراجعه می‌کنند. اما از دیدگاه گوگل و موتورهای جستجو، یک سیستم سرچ غیر‌اصولی نه تنها بار اضافی به سرور تحمیل می‌کند، بلکه می‌تواند به دلیل تولید صفحات تکراری (Duplicate Content) به سئو سایت شما آسیب جدی وارد کند. در این مقاله به آموزش جستجو در دیتابیس با PHP به روش کاملاً امن و مطابق با استانداردهای گوگل می‌پردازیم.

گام اول: اتصال امن به دیتابیس با PDO

برای شروع کار با پایگاه داده در PHP، همیشه توصیه می‌شود از کتابخانه PDO (PHP Data Objects) استفاده کنید. PDO علاوه بر پشتیبانی از دیتابیس‌های مختلف، امنیت بسیار بالایی در برابر حملات تزریق کد (SQL Injection) ارائه می‌دهد.


$host = 'localhost';
$db   = 'my_website';
$user = 'root';
$pass = 'password';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];

try {
     $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

گام دوم: نوشتن کوئری جستجوی بهینه و امن

بسیاری از برنامه‌نویسان مبتدی متغیرهای ورودی کاربر را مستقیماً وارد کوئری‌های SQL می‌کنند. این کار بزرگترین حفره امنیتی (SQL Injection) را ایجاد می‌کند. راهکار استاندارد گوگل و اصول برنامه‌نویسی ایمن، استفاده از Prepared Statements است.


// دریافت کلمه کلیدی جستجو شده توسط کاربر
$searchTerm = isset($_GET['q']) ? trim($_GET['q']) : '';

if (!empty($searchTerm)) {
    // نوشتن کوئری با استفاده از Placeholders
    $sql = "SELECT id, title, description FROM articles WHERE title LIKE :search OR description LIKE :search";
    $stmt = $pdo->prepare($sql);
    
    // اضافه کردن کاراکترهای % برای جستجوی انعطاف‌پذیر
    $likeParam = "%" . $searchTerm . "%";
    $stmt->execute(['search' => $likeParam]);
    
    $results = $stmt->fetchAll();
}

گام سوم: ساخت فرم جستجوی استاندارد (HTML)

برای ایجاد فرم جستجو، باید از متد GET استفاده کنیم تا کاربر بتواند آدرس جستجوی خود را بوکمارک کند و همچنین قابلیت رهگیری در ابزارهایی مانند گوگل آنالیتیکس فراهم باشد. توجه کنید که در کدهای HTML زیر برای رعایت قوانین، فاصله‌های استاندارد رعایت شده است:


< form method="GET" action="search.php" >
    < input type="text" name="q" placeholder="جستجو در سایت..." value="" / >
    < button type="submit" >جستجو< / button >
< / form >

استانداردهای سئو گوگل برای صفحات جستجو

گوگل دستورالعمل‌های خاصی برای صفحات نتایج جستجوی داخلی وب‌سایت‌ها دارد:

  • جلوگیری از ایندکس شدن صفحات جستجو: گوگل توصیه می‌کند که صفحات نتایج جستجوی داخلی را با تگ noindex نشانه‌گذاری کنید تا از هدر رفتن بودجه خزش (Crawl Budget) جلوگیری شود.
  • نمایش نتایج خالی به صورت بهینه: در صورتی که نتیجه‌ای یافت نشد، حتماً پیغام مناسب به کاربر نشان دهید و پیشنهادهای جستجوی دیگری ارائه دهید.
  • سرعت لود بالا: استفاده از ایندکس‌گذاری (Indexing) روی فیلدهای متنی پرسرچ، تاثیر خارق‌العاده‌ای روی سرعت لود صفحات خواهد داشت.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی
1403/08/05 20:43

آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی

مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر
1403/08/16 22:45

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
1402/06/18 23:07

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

مطالعه بیشتر
آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)
1405/05/04 23:34

آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)

مطالعه بیشتر
آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)
1405/04/04 00:22

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها
1402/06/28 23:04

آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها

مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
1403/08/09 20:48

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

مطالعه بیشتر
تفاوت Session و Cookie در PHP؛ راهنمای جامع و کاربردی طبق استاندارد گوگل
1405/05/01 20:14

تفاوت Session و Cookie در PHP؛ راهنمای جامع و کاربردی طبق استاندارد گوگل

مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1402/06/28 00:07

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش
1403/06/02 21:08

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

مطالعه بیشتر
آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)
1405/04/16 01:14

آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)

مطالعه بیشتر
پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
1403/07/04 18:12

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد