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

السؤال

Recommended Posts

  • 0
نشر

في البداية تحتاجين الى مربع البحث الذي من خلاله سترسلين البيانات لقاعدة البيانات حتى يتم البحث عن القيمة المطلوبة, لنفرض انكِ تريدين البحث عن الاسم كما في المثال التالي:

<form action="search.php" method="POST">
  الاسم
  <input type="text" name="name">
  <input type="submit" value="بحث">
</form>

ثم سنرسل الاسم الى قاعدة البيانات للبحث عنه كما يلي:

<?php
// الاتصال بقاعدة البيانات
$link = mysqli_connect("localhost", "root", "", "users");

// فحص الاتصال
if ($link === false) {
   die("ERROR: Could not connect. " . mysqli_connect_error());
}

// الاسم الذي تم ارساله
$name = $_post['name'];

// تجهيز الاستعلام لارساله لقاعدة البيانات
$sql = "SELECT * FROM persons WHERE name LIKE '%{$name}%'";
if ($result = mysqli_query($link, $sql)) {
   if (mysqli_num_rows($result) > 0) {
      echo "<table>";
      echo "<tr>";
      echo "<th>id</th>";
      echo "<th>first_name</th>";
      echo "<th>last_name</th>";
      echo "<th>email</th>";
      echo "</tr>";
      while ($row = mysqli_fetch_array($result)) {
         echo "<tr>";
         echo "<td>" . $row['id'] . "</td>";
         echo "<td>" . $row['first_name'] . "</td>";
         echo "<td>" . $row['last_name'] . "</td>";
         echo "<td>" . $row['email'] . "</td>";
         echo "</tr>";
      }
      echo "</table>";
      // إغلاق مجموعة النتائج
      mysqli_free_result($result);
   } else {
      echo "No records matching your query were found.";
   }
} else {
   echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

// إغلاق الاتصال بقاعدة البيانات
mysqli_close($link);
?>

 

  • 0
نشر (معدل)

STEP 1) HTML SEARCH FORM

form.php

<!DOCTYPE html>
<html>
  <body>
    <!-- [SEARCH FORM] -->
    <form method="post" action="1-form.php">
      <h1>SEARCH FOR USERS</h1>
      <input type="text" name="search" required/>
      <input type="submit" value="Search"/>
    </form>

    <?php
    if (isset($_POST['search'])) {
      // SEARCH FOR USERS
      require "2-search.php";

      // DISPLAY RESULTS
      if (count($results) > 0) {
        foreach ($results as $r) {
          printf("<div>%s - %s</div>", $r['name'], $r['email']);
        }
      } else {
        echo "No results found";
      }
    }
    ?>
  </body>
</html>

STEP 2) THE SEARCH SCRIPT

<?php
// (1) DATABASE CONFIG
// ! CHANGE THESE TO YOUR OWN !
define('DB_HOST', 'localhost');
define('DB_NAME', 'test');
define('DB_CHARSET', 'utf8');
define('DB_USER', 'root');
define('DB_PASSWORD', '');

// (2) CONNECT TO DATABASE
try {
  $pdo = new PDO(
    "mysql:host=" . DB_HOST . ";charset=" . DB_CHARSET . ";dbname=" . DB_NAME,
    DB_USER, DB_PASSWORD, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false ]
  );
} catch (Exception $ex) {
  die($ex->getMessage());
}

// (3) SEARCH
$stmt = $pdo->prepare("SELECT * FROM `users` WHERE `name` LIKE ? OR `email` LIKE ?");
$stmt->execute(["%" . $_POST['search'] . "%", "%" . $_POST['search'] . "%"]);
$results = $stmt->fetchAll();
if (isset($_POST['ajax'])) { echo json_encode($results); }

 

 

تم التعديل في بواسطة Abdelfatah Obaid

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...