اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

عليك أولاً إنشاء نموذج البحث:

<form action="search.php" method="get">
  <input type="text" name="q" placeholder="Search...">
  <button type="submit">Search</button>
</form>

ثم إنشاء ملف search.php لمعالجة تلك العملية كالتالي في جدولي users و products مثلاً:

<?php
$db_host = '';
$db_username = '';
$db_password = '';
$db_name = '';
//عليك الإتصال بقاعدة البيانات من خلال البيانات السابقة

$conn = new mysqli($db_host, $db_username, $db_password, $db_name);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$q = $_GET['q'];

$sql = "SELECT * FROM users WHERE name LIKE '%$q%' OR email LIKE '%$q%'";
$sql .= " UNION ALL ";
$sql .= "SELECT p.* FROM products p INNER JOIN users u ON p.user_id = u.id WHERE p.name LIKE '%$q%' OR p.description LIKE '%$q%'";

$result = $conn->query($sql);

  while($row = $result->fetch_assoc()) {
    if ($row['table_name'] == 'users') {
      echo "User: " . $row['name'] . " (" . $row['email'] . ")" . "<br>";
    } else {
      echo "Product: " . $row['name'] . " - " . $row['description'] . "<br>";
    }
  }
} else {
  echo "No results found";
}

$conn->close();
?>

نحصل على قيمة حقل البحث من خلال $_GET['q'] ثم استخدامها للبحث في الجداول، ولاحظ أن q هي اسم الحقل الخاص بالبحث لأننا سمينا الحقل q في سمة name في كود HTML.

  • 0
نشر

الطرق تتعدّد وتختلف على حسب رغبتك، فأولا يجب عليك إنشاء قاعدة بيانات ولتكن MySQL بحيث تحتوي على جدولين مثلا كالتالي:

  • جدول users (مع أعمدة id, name, email)
  • posts (مع أعمدة id, user_id, title, content)

ثم قم بإنشاء صفحة HTML بسيطة تتضمن نموذج بحث:

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>صفحة البحث</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
            padding: 0;
            background-color: #f4f4f4;
        }
        .container {
            max-width: 600px;
            margin: auto;
            background: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        input[type="text"] {
            width: 100%;
            padding: 10px;
            margin: 10px 0;
            border: 1px solid #ddd;
            border-radius: 5px;
        }
        button {
            padding: 10px 15px;
            background: #5cb85c;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        button:hover {
            background: #4cae4c;
        }
    </style>
</head>
<body>

<div class="container">
    <h2>بحث عن بيانات</h2>
    <form action="search.php" method="POST">
        <input type="text" name="query" placeholder="أدخل كلمة البحث..." required>
        <button type="submit">بحث</button>
    </form>
</div>

</body>
</html>

ثم أنشئ ملف search.php لمعالجة البيانات المرسلة من النموذج:

<?php
$servername = "localhost"; // اسم الخادم
$username = "username"; // اسم المستخدم
$password = "password"; // كلمة المرور
$dbname = "database_name"; // اسم قاعدة البيانات

// إنشاء اتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// التحقق من الاتصال
if ($conn->connect_error) {
    die("فشل الاتصال: " . $conn->connect_error);
}

// الحصول على كلمة البحث
$query = $conn->real_escape_string($_POST['query']);

// استعلام SQL للبحث في الجدولين
$sql = "SELECT * FROM users WHERE name LIKE '%$query%' 
        UNION 
        SELECT * FROM posts WHERE title LIKE '%$query%' OR content LIKE '%$query%'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // عرض النتائج
    while($row = $result->fetch_assoc()) {
        echo "نتيجة: " . $row['name'] . " - " . $row['title'] . "<br>";
    }
} else {
    echo "لا توجد نتائج.";
}

$conn->close();
?>

بعدها قم بفتح ملف index.html في المتصفح وأدخل كلمة البحث واضغط على الزر للبحث.

  • 0
نشر
بتاريخ On 17‏/8‏/2024 at 13:27 قال عبد الوهاب بومعراف:

الطرق تتعدّد وتختلف على حسب رغبتك، فأولا يجب عليك إنشاء قاعدة بيانات ولتكن MySQL بحيث تحتوي على جدولين مثلا كالتالي:

  • جدول users (مع أعمدة id, name, email)
  • posts (مع أعمدة id, user_id, title, content)

ثم قم بإنشاء صفحة HTML بسيطة تتضمن نموذج بحث:

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>صفحة البحث</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
            padding: 0;
            background-color: #f4f4f4;
        }
        .container {
            max-width: 600px;
            margin: auto;
            background: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
        }
        input[type="text"] {
            width: 100%;
            padding: 10px;
            margin: 10px 0;
            border: 1px solid #ddd;
            border-radius: 5px;
        }
        button {
            padding: 10px 15px;
            background: #5cb85c;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }
        button:hover {
            background: #4cae4c;
        }
    </style>
</head>
<body>

<div class="container">
    <h2>بحث عن بيانات</h2>
    <form action="search.php" method="POST">
        <input type="text" name="query" placeholder="أدخل كلمة البحث..." required>
        <button type="submit">بحث</button>
    </form>
</div>

</body>
</html>

ثم أنشئ ملف search.php لمعالجة البيانات المرسلة من النموذج:

<?php
$servername = "localhost"; // اسم الخادم
$username = "username"; // اسم المستخدم
$password = "password"; // كلمة المرور
$dbname = "database_name"; // اسم قاعدة البيانات

// إنشاء اتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// التحقق من الاتصال
if ($conn->connect_error) {
    die("فشل الاتصال: " . $conn->connect_error);
}

// الحصول على كلمة البحث
$query = $conn->real_escape_string($_POST['query']);

// استعلام SQL للبحث في الجدولين
$sql = "SELECT * FROM users WHERE name LIKE '%$query%' 
        UNION 
        SELECT * FROM posts WHERE title LIKE '%$query%' OR content LIKE '%$query%'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // عرض النتائج
    while($row = $result->fetch_assoc()) {
        echo "نتيجة: " . $row['name'] . " - " . $row['title'] . "<br>";
    }
} else {
    echo "لا توجد نتائج.";
}

$conn->close();
?>

بعدها قم بفتح ملف index.html في المتصفح وأدخل كلمة البحث واضغط على الزر للبحث.

ماهو الشكل الذي سيظهر فيه البيانات؟ لماذا لم نضع ال td و th

بتاريخ On 17‏/8‏/2024 at 13:12 قال Mustafa Suleiman:

عليك أولاً إنشاء نموذج البحث:

<form action="search.php" method="get">
  <input type="text" name="q" placeholder="Search...">
  <button type="submit">Search</button>
</form>

ثم إنشاء ملف search.php لمعالجة تلك العملية كالتالي في جدولي users و products مثلاً:

<?php
$db_host = '';
$db_username = '';
$db_password = '';
$db_name = '';
//عليك الإتصال بقاعدة البيانات من خلال البيانات السابقة

$conn = new mysqli($db_host, $db_username, $db_password, $db_name);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$q = $_GET['q'];

$sql = "SELECT * FROM users WHERE name LIKE '%$q%' OR email LIKE '%$q%'";
$sql .= " UNION ALL ";
$sql .= "SELECT p.* FROM products p INNER JOIN users u ON p.user_id = u.id WHERE p.name LIKE '%$q%' OR p.description LIKE '%$q%'";

$result = $conn->query($sql);

  while($row = $result->fetch_assoc()) {
    if ($row['table_name'] == 'users') {
      echo "User: " . $row['name'] . " (" . $row['email'] . ")" . "<br>";
    } else {
      echo "Product: " . $row['name'] . " - " . $row['description'] . "<br>";
    }
  }
} else {
  echo "No results found";
}

$conn->close();
?>

نحصل على قيمة حقل البحث من خلال $_GET['q'] ثم استخدامها للبحث في الجداول، ولاحظ أن q هي اسم الحقل الخاص بالبحث لأننا سمينا الحقل q في سمة name في كود HTML.

اخي كيف اعرف شكل البيانات كيف ستظهر بعد البحث 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...