آموزش رایگان 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) روی فیلدهای متنی پرسرچ، تاثیر خارق‌العاده‌ای روی سرعت لود صفحات خواهد داشت.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن
1402/06/28 00:59

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

مطالعه بیشتر
آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل
1404/09/29 21:09

آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل

مطالعه بیشتر
الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها
1403/08/01 19:08

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

مطالعه بیشتر
آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل
1405/05/13 21:34

آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
1402/06/18 22:55

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر
چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی
1403/06/02 17:39

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

مطالعه بیشتر
استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی
1404/09/23 21:27

استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی

مطالعه بیشتر
آموزش جامع حلقه‌های while و do while در PHP به زبان ساده و کاربردی
1405/04/04 00:17

آموزش جامع حلقه‌های while و do while در PHP به زبان ساده و کاربردی

مطالعه بیشتر
آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها
1403/08/02 21:01

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها

مطالعه بیشتر
راهنمای کامل تگ‌های متنی HTML و اصول سئو برای محتوا
1402/05/18 00:40

راهنمای کامل تگ‌های متنی HTML و اصول سئو برای محتوا

مطالعه بیشتر
آموزش جامع و استاندارد کار با آرایه‌ها در PHP (راهنمای گوگل)
1405/03/24 01:04

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

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
1402/06/28 23:35

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر

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