Omer Amad نشر 17 أغسطس أرسل تقرير نشر 17 أغسطس كيفكم يا أصدقاء.. بدي اعمل صفحة search عن البيانات موجودة في جدولين داخل قاعدة بيانات mysql..... كيف حل هذه المشكلة 2 اقتباس
0 Mustafa Suleiman نشر 17 أغسطس أرسل تقرير نشر 17 أغسطس عليك أولاً إنشاء نموذج البحث: <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. 1 اقتباس
0 عبد الوهاب بومعراف نشر 17 أغسطس أرسل تقرير نشر 17 أغسطس الطرق تتعدّد وتختلف على حسب رغبتك، فأولا يجب عليك إنشاء قاعدة بيانات ولتكن 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 في المتصفح وأدخل كلمة البحث واضغط على الزر للبحث. 1 اقتباس
0 Omer Amad نشر 28 أغسطس الكاتب أرسل تقرير نشر 28 أغسطس بتاريخ 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. اخي كيف اعرف شكل البيانات كيف ستظهر بعد البحث اقتباس
السؤال
Omer Amad
كيفكم يا أصدقاء.. بدي اعمل صفحة search عن البيانات موجودة في جدولين داخل قاعدة بيانات mysql..... كيف حل هذه المشكلة
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.