آموزش کامل PHP – قسمت 19: حذف داده ها از بانک

در قسمت های قبلی آموزش با دستورات درج، ویرایش و خواندن از بانک اطلاعاتی mysql آشنا شدیم. در این قسمت از آموزش php با پردیس وردپرس با نحوه حذف اطلاعات از بانک آشنا خواهیم شد.

حذف داده ها از بانک

ابتدا پوشه پروژه cms را که در جلسات قبل ایجاد کردیم را باز کرده و پروژه را اجرا کنید. فایل edit.php را باز کرده کد های زیر را جایگزین کد های قبلی کنید:

<!DOCTYPE html>

<html dir="rtl" lang="fa-IR">

<head>

<title>ویرایش مطلب</title>

<meta charset="utf-8" />

</head>

<body style="font-family: tahoma; font-size:14px;">

<center>

<?php

include ("config.php");

//select all records from posts table

$get_query = mysql_query("SELECT * FROM `posts`");

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result['title'];

$postText = $fetch_result['text'];

$postId = $fetch_result['id'];

echo "<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>) - (<a href=deletepost.php?id=$postId>حذف</a>)</h2>";

}

?>

</center>

</body>

</html>

تنها تغییری که در این فایل ایجاد کرده ایم این است که یک لینک ثابت برای حذف هر مطلب در کنار آن اضافه کرده ایم. لینک مقصد آن را نیز فایل deletepost.php قرار داده ایم. همچنین شناسه هر پست را نیز با متغیر id? به این فایل ارسال کرده تا به این صورت بتوانیم پست انتخاب شده را حذف کنیم.

حال یک فایل به نام deletepost.php ایجاد کرده و کد های زیر را در آن قرار دهید:

<!DOCTYPE html>

<html dir="rtl" lang="fa-IR">

<head>

<title>حذف پست</title>

<meta charset="utf-8" />

</head>

<body style="font-family: tahoma; font-size:14px;">

<center>

<?php

include ("config.php");

$pid = $_GET['id'];

//delete query

$get_query = mysql_query("DELETE FROM `posts` WHERE `id` = '$pid' ");

if($get_query){

echo "حذف مطلب مورد نظر با شناسه $pid با موفقیت انجام شد.";

}else{

echo "مشکلی در حذف پست مورد نظر رخ داده است.";

}

?>

</center>

</body>

</html>

کوئری مخصوص حذف داده‌ها را به صورت زیر نوشته‌ایم:

$get_query = mysql_query(“DELETE FROM ‘posts’ WHERE ‘id’ = ‘$pid’ “);

ابتدا کلمه کلیدی DELETE را نوشته و سپس FROM را می‌نویسم و پس از این دو کلمه نام جدولی که قصد حذف اطلاعات از آن را داریم می‌نویسیم. از آنجا که نام جدول ما posts است پس همین نام را نوشته و سپس مانند جلسات قبل از دستور WHERE استفاده می‌کنیم تا یک شرط برای اجرای این کوئری تعیین کنیم. پس از این کلمه اعلام می‌کنیم که تمام اطلاعات مربوط به رکوردی که id آن برابر مقدار ذخیره شده در pid است و در جدول posts قرار دارد را حذف کند. اگر این کوئری به درستی و با موفقیت انجام شود، متغیر get_query برابر true خواهد بود و اگر به درستی اجرا نشود و مشکلی در اجرای این کوئری پیش بیاید، مقدار ذخیره شده در متغییر get_query برابر false خواهد شد.

سپس با یک دستور شرطی if بررسی می‌کنیم که آیا کوئری حذف به درستی انجام شده یا خیر. اگر عملیات حذف انجام شده باشد پیغامی مبنی بر موفقیت آمیز بودن حذف مطلب مورد نظر نمایش خواهد یافت. در غیر این صورت پیام عدم حذف مطلب انتخابی نمایش می‌یابد.