نویسنده:
سجاد حسین زاده

تعداد بازدید:
5299

تاریخ بهروزرسانی:
1400-09-10

زمان مطالعه:
5 دقیقه
جلسه بیست سوم PHP : آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
در این مقاله از کدپز با جلسه بیست سوم PHP که با موضوع ساخت جستجوی زنده ( Live ) پایگاه داده با استفاده از AJAX می باشد، در خدمت شما هستیم.
در قسمت قبل در جلسه بیست دوم PHP به آموزش AJAX پرداختیم و دستورات آن در PHP را بررسی کردیم.
در پایان این جلسه:
می آموزید تا یک ویژگی جستجوی پایگاه داده MySQL را با استفاده از PHP و AJAX بسازید.
با ما همراه باشید با جلسه بیست سوم PHP
ساخت جستجوی زنده ( Live ) پایگاه داده با استفاده از AJAX
شما میتوانید یک پایگاه داده زنده ساده را با استفاده از AJAX و PHP ایجاد کنید، هنگامی که کاربر شروع به تایپ کردن می کند، نتایج جستجو به صورت زنده در جعبه ورودی به نمایش در خواهد آمد.
در این جلسه ما میخواهیم یک کادر جستجوی زنده ایجاد کنیم که این جدول، کشورها را جستجو کند و نتایج را نشان دهد. در ابتدا باید این جدول را در MySQL ایجاد کنیم.
مرحله ۱: ایجاد جدول پایگاهداده
با استفاده از دستور SQL زیر جدول کشور ها در database ایجاد خواهد شد.
CREATE TABLE countries (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL
);
پس از ایجاد جدول بالا از جلسه بیست سوم PHP ، باید آن را با دادههایی با استفاده از دستورات SQL وارد کنید.
مرحله 2: ایجاد فرم جستجو
اکنون، می خواهیم یک رابط وب ساده ایجاد کنیم به گونه ایی که به کاربر اجازه دهد تا نام کشورهایی که در جدول کشورهای ما موجود است را جستجو کند، دقیقا مانند نحوه عملکرد مثال autocomplete که در جلسه قبل بررسی کردیم. یک فایل PHP با نام ” search-form.php ” بسازید و کد زیر از جلسه بیست سوم PHP را در داخل آن قرار دهید.
PHP Live MySQL Database Search
هر زمان که محتوای ورودی جستجو تغییر میکند یا رویداد keyup در ورودی کد jQuery رخ میدهد ( خط شماره 47 تا 67 ) یک درخواست AJAX برای فایل ” backend-search.php ” ارسال میکند که رکوردهای جدول کشورها مربوط به عبارت جستجو را بازیابی میکند. این رکوردها در داخل یک < div > وارد میشوند و روی مرورگر نمایش داده میشوند.
مرحله 3: پردازش موتور جستجو در بکند
در اینجا کد اصلی فایل ” backend-search.php ” وجود دارد. که براساس رشته ارسال شده از طریق AJAX توسط کاربر، پایگاهداده را جستجو می کند و سپس نتایج را به مرورگر ارسال میکند.
دستور زیر را به سه روش رویه ایی، شی گرایی و PDO بررسی خواهیم کرد.
مثال زیر از جلسه بیست سوم PHP به صورت MySQL رویه ایی نوشته شده است.
0){
// Fetch result rows as an associative array
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo "" . $row["name"] . "
";
}
} else{
echo "No matches found
";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// close connection
mysqli_close($link);
?>
مثال زیر به صورت MySQL شی گرایی نوشته شده است.
connect_error);
}
if(isset($_REQUEST["term"])){
// Prepare a select statement
$sql = "SELECT * FROM countries WHERE name LIKE ?";
if($stmt = $mysqli->prepare($sql)){
// Bind variables to the prepared statement as parameters
$stmt->bind_param("s", $param_term);
// Set parameters
$param_term = $_REQUEST["term"] . '%';
// Attempt to execute the prepared statement
if($stmt->execute()){
$result = $stmt->get_result();
// Check number of rows in the result set
if($result->num_rows > 0){
// Fetch result rows as an associative array
while($row = $result->fetch_array(MYSQLI_ASSOC)){
echo "" . $row["name"] . "
";
}
} else{
echo "No matches found
";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
}
// Close statement
$stmt->close();
}
// Close connection
$mysqli->close();
?>
مثال زیر با روش PDO نوشته شده است.
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
die("ERROR: Could not connect. " . $e->getMessage());
}
// Attempt search query execution
try{
if(isset($_REQUEST["term"])){
// create prepared statement
$sql = "SELECT * FROM countries WHERE name LIKE :term";
$stmt = $pdo->prepare($sql);
$term = $_REQUEST["term"] . '%';
// bind parameters to statement
$stmt->bindParam(":term", $term);
// execute the prepared statement
$stmt->execute();
if($stmt->rowCount() > 0){
while($row = $stmt->fetch()){
echo "" . $row["name"] . "
";
}
} else{
echo "No matches found
";
}
}
} catch(PDOException $e){
die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
// Close statement
unset($stmt);
// Close connection
unset($pdo);
?>
دستور SELECT برای یافتن رکوردهای تطبیق در جدول پایگاهداده کشورها مورد استفاده قرار میگیرد. ( خط شماره 16 ) .
نکته مهم: همیشه قبل از این که کاربر اطلاعات را وارد کند، شما بهتر است تا برخی عبارات را فیلتر کنید. همچنین می توانید از تابع ()PHP mysqli_real_escape_string نیز استفاده کنید. در این تابع می توان کلمات دیگری را جایگزین کلمات دیگر کرد.
تبریک میگم شما موفق شدید تا جلسه بیست سوم PHP از کدپز را پشت سر بگذارید. منتظر نقطه نظرات شما عزیزان هستیم.
📝<< افراد موفق مثل تو، در انجام کارهایشان امروز و فردا نمی کنند و زندگی شان را در انتظار رسیدن بهترین زمان برای انجام کاری، از دست نمی دهند!!! . . . . >> ☑️
1 دیدگاه در “جلسه بیست سوم PHP : آموزش کار با AJAX و دیتابیس MySQL در PHP”
سلام وقت بخیر ببخشین چرا فقط کلمات انگلیسی رو فقط از دیتابیس واکشی میکنه؟