ایجاد پنل مدیریت سایت با PHP - ویرایش و حذف دسته بندی

php-edit-remove-categories

با سلام دوباره به شما عزیزان، در این قسمت از آموزش ساخت فروشگاه اینترنتی با استفاده از زبان قدرتمند php، ما قرار است مطالب ناگفته قسمت قبل را تکمیل کنیم. آنچه ما در قسمت قبل انجام دادیم، از این قرار بود که، گزینه ی " مشاهده تمامی دسته ها" را فعال کردیم. برای یاد آوری، تصویر زیر را مشاهده بفرمایید.

در واقع وقتی ما بر روی گزینه "مشاهده تمامی دسته ها " کلیک می کنیم، تصویری همانند تصویر زیر برای ما به نمایش در می آید.

مشاهده تمامی دسته بندی ها در پنل مدیریت سایت

در هر ردیف گزینه هایی تحت عنوان "ویرایش" و "حذف" قرار گرفته است. در واقع با استفاده از هر کدام از این گزینه ها، ما می توانیم به راحتی، دسته مورد نظر خودمان را ویرایش یا حذف کنیم.

برای این منظور ، شما باید فایل view_cats.php را که در آدرس C:\wamp\www\ecommerce\admin_area قرار دارد، با استفاده از Notepad++  باز کنید. حال به تصویر زیر توجه بفرمایید:

مشاهده ی کدهای ویرایش و حذف دسته ها

لینک "ویرایش" ، کدهای اجرایی برنامه ما را به سمت فایل index.php هدایت کرده و به همراه این کدها، پارامتر edit_cat را که با مقدار id دسته، مقداردهی شده است، نیز ارسال می کند. این کار باعث می شود که، دسته مورد نظر، در فایل index.php شناسایی شود.

اینکه چگونه شناسایی صورت می گیرد، دقیقا مشخص است، اینجا باید از متغییر سراسری $_GET['edit_cat']  استفاده نماییم و علاوه بر تغییر جهت برنامه، با استفاده از مقدار متغییر سراسری $_GET['edit_cat'] دسته مورد نظر برای ویرایش را نیز پیدا کنیم.

این در حالی است که در مورد حذف یک دسته، قضیه فرق دارد و جهت اجرای برنامه به سمت فایل delet_cat.php هدایت می گردد و همزمان پارامتر detete_cat که با id دسته مقداردهی شده است، نیز فرستاده می شود. در ادامه به طور مفصل آن را توضیح خواهم داد.

وقتی بر روی ویرایش یک دسته کلیک می شود چه روی می دهد؟

با توجه به توضیحات بالا، ما به فایل index.php خواهیم رفت، اما دقت نمایید این فایل هنوز برای ادامه کار ما آماده نشده است و باید یک سری تغییرات در آن اعمال کنیم.

بنابراین باید به آدرس C:\wamp\www\ecommerce\admin_area برویم و فایل index.php را با استفاده از Notepad++ باز کنیم و کدهای زیر را در آن پیدا کنیم.

			if(isset($_GET['view_cats']))
			{
				include('view_cats.php');
				}

کدهای بالا را حذف کرده و کدهای زیر را جایگزین کدهای بالا می کنیم.

			if(isset($_GET['view_cats']))
			{
				include('view_cats.php');
			}
			
			if(isset($_GET['edit_cat']))
			{
				include('edit_cat.php');
			}

همانطور که مشاهده می نمایید، کار آماده سازی فایل index.php برای پذیرش لینک از فایل view_cats.php کامل شد.

حالا اگر به کدهای بالا دقت کنید، من این را گفته ام که، اگر بر روی لینک "ویرایش"  فشار داده شده بود، باید مسیر برنامه به سمت فایل edit_cat.php تغییر کند. لذا الان کاری که ما باید در ادامه انجام دهیم ، ایجاد فایل edit_cat.php است. به همین خاطر لازم است که به آدرس C:\wamp\www\ecommerce\admin_area برویم و مانند تصویر زیر، این فایل را ایجاد کنیم.

ایجاد فایل edit_cat

بعد از ایجاد این فایل، باید به سراغ کدهای موجود در آن برویم، بنابراین فایل edit_cat.php را با استفاده از Notepad++ باز می کنیم و کدهای زیر را در آن قرار می دهیم.

<?php
	
	$cat_id=$_GET['edit_cat'];
	$select_cat="select * from categories where cat_id='$cat_id' ";
	$run_cat=mysqli_query($con,"SET NAMES SET utf8");
	$run_cat=mysqli_query($con,"SET CHARACTER SET utf8");
	$run_cat=mysqli_query($con,$select_cat);
	$row_cat=mysqli_fetch_array($run_cat);
	$title_cat=$row_cat['cat_title'];
	
?>
<form method="post" action="" >
	<table  width="650" align="center" style="border: none;" >
		<caption style="border: none;" ><b>دسته خودتان را مورد ویرایش قرار دهید.</b></caption >
		<tr style="border: none;">
			<td style="border: none;"><b>نام دسته :</b></td >
			<td style="border: none;"><input type="text" name="update_cat" size="40" placeholder="<?php echo $title_cat  ?>" ></td >
			<td style="border: none;"><input type="submit" name="update_old_cat" value="دسته ویرایش شود."/></td >
		</tr>
	</table>
</form>
<?php
	if(isset($_POST['update_old_cat'])){
		$update_old_cat=$_POST['update_cat'];
		$update_cat="update categories set cat_title=N'$update_old_cat' where cat_id='$cat_id'";
		$run_update_cat = mysqli_query($con,$update_cat);
		if($run_update_cat)
		{
			echo "<script>alert('دسته شما به درستی به روز رسانی شد.')</script>";
			echo "<script>window.open('index.php?view_cats','_self')</script>";
		}
	}
?>

در توضیح کدهای بالا، باید این را خدمت شما عرض کنم که، در ابتدا باید نام آن دسته ایی را که مدیر سایت می خواهد آن را تغییر دهد، از پایگاه داده استخراج کنیم، دقت کنید که این کار را با استفاده از همان مقدار متغییر سراسری $_GET['edit_cat']  انجام می دهیم (اینجاست که به اهمیت مقداردهی به متغییر $_GET['edit_cat'] پی می بریم)

حالا چرا اینکار را انجام می دهیم؟ چون ما می خواهیم نام این دسته به عنوان مقدار پیش فرض در تگ ورودی قرار گیرد،  به کد زیر دقت کنید.

<td style="border: none;"><input type="text" name="update_cat" size="40" placeholder="<?php echo $title_cat  ?>" ></td >

در واقع در اینجا یک فرم ساده داریم که دارای یک تگ ورودی از نوع text (دقت کنید از این تگ ورودی برای گرفتن نام جدید دسته استفاده می کنیم) و یک دکمه به نام  دسته ویرایش شود" است.

بعد از اینکه form ایجاد شد؛ به پردازش اطلاعات وارد شده در تگ ورودی می پردازیم و اگر مدیر سایت، نام جدیدی برای دسته خود انتخاب کرده بود، ما با استفاده از یک دستور update ساده SQL، این نام را جایگزین نام قبلی می کنیم.

دستور update که ما از آن استفاده کردیم به صورت زیر است.

$update_cat="update categories set cat_title=N'$update_old_cat' where cat_id='$cat_id'";

در ادامه نیز برای اینکه موفقیت آمیز بودن عملیات update را به اطلاع مدیر سایت برسانیم، با استفاده از یک دستور ساده javascript، یک پیام با عنوان "دسته شما به درستی به روز رسانی شد." را ایجاد کردیم.

کار ما در مورد لینک ویرایش تمام شده است، حالا باید به سراغ کدنویسی های لینک حذف دسته برویم.

وقتی بر روی حذف یک دسته کلیک می شود چه روی می دهد؟

وقتی که بر روی لینک حذف کلیک می شود، برنامه به سمت فایل delet_cat.php سوق داده می شود، و همزمان پارامتر detete_cat که با id دسته مقداردهی شده است، نیز فرستاده می شود.

بنابراین اولین کاری که ما باید انجام دهیم این است که فایل delet_cat.php را در آدرس C:\wamp\www\ecommerce\admin_area بسازیم. من اینکار را در تصویر زیر انجام داده ام.

ایجاد فایل delete_cat

حالا باید برویم سراغ کدهایی که در این فایل قرار دارد، به همین خاطر این فایل را ابتدا با Notepad++ باز کنید و کدهای زیر را درون آن قرار دهید.

<html lang="fa"  dir="rtl">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	</head>
	<body>
		<?php
			include("include/db.php");
			if(isset($_GET['delete_cat'])){
				$delete_id_cat=$_GET['delete_cat'];
				$delete_cat="delete from categories where cat_id='$delete_id_cat' ";
				$run_delete_cat=mysqli_query($con,$delete_cat);
				if($run_delete_cat)
				{
					echo "<script>alert('این دسته با موفقیت از میان دسته های شما حذف شد.')</script>";
					echo "<script>window.open('index.php?view_cats','_self')</script>";
				}
			}
		?>
	</body>
</html>

در این فایل، کار به آن صورت پیچیده ایی انجام نشده است، فقط در همان ابتدا ما به پایگاه داده متصل شدیم و سپس با استفاده از مقدار متغییر سراسری $_GET[' delete_cat ']، دسته ایی را که قرار است حذف شود، شناسایی و سپس دستور SQL مبتنی بر حذف را به صورت زیر ایجاد کردیم.

$delete_cat="delete from categories where cat_id='$delete_id_cat' ";

و آن را به مرحله اجرا در آوردیم. و در ادامه با استفاده از تابع alert (از توابع javascript) یک پیام مبنی بر موفقیت آمیز بودن این عملیات به مدیر سایت دادیم.

آیا کدهای کار می کنند؟

حالا وقت آن رسیده است که با هم ببینیم که در عمل، آیا کدهای ما کار خواهند کرد یا خیر. به همین خاطر در ابتدا wamp را روشن می کنیم. سپس به مرورگر می رویم و آدرس http://localhost/ecommerce/admin_area/index.php?view_cats را در آن وارد می کنیم . برای من تصویر زیر به نمایش در آمده است؛ احتمالا، با توجه به دسته های موجود در پایگاه داده شما، تصویر زیر چیز دیگر خواهد بود.

من بر روی ویرایش یک دسته کلیک کرده ام

البته همانگونه که مشاهده می نمایید، من در تصویر بالا قصد دارم، دسته "دوربین " را ویرایش کنم. بنابراین زمانی که بر روی لینک "ویرایش " فشار می دهم تصویر زیر برای من به نمایش در می آید.

تصویری از صفحه ویرایش دسته

حالا من قصد دارم که نام دسته "دوربین " را به " دوربین 2 " تغییر دهم، بنابراین طبق تصویر زیر آن را در کادر وارد می کنم و بر روی دکمه ی "دسته ویرایش شود" فشار می دهم.

ویرایش دسته دوربین

با انجام کار بالا ، تصویر زیر برای من به نمایش در می آید.

پیام موفقیت در ویرایش دسته

این یعنی اینکه دسته من به درستی به روز رسانی شده است، اگر بر روی کلید ok فشار دهید تصویر زیر برای من به نمایش در می آید. همانطور که می بینید، دسته مورد نظر به درستی تغییر نام داده است.

دسته مورد نظر تغییر نام داده است

حالا بیایید با همدیگر حذف یک دسته را بررسی کنیم. برای اینکار کافی است که بر روی گزینه ی "حذف" مانند تصویر زیر کلیک کنیم.

حذف کردن دسته از میان دسته های موجود در پایگاه داده

با انجام این کار یک پیام به صورت زیر برای من به نمایش در می آید.

دسته ی مورد نظر حذف شد

حالا اگر بر روی ok فشار دهید، من را به تصویر زیر هدایت می کند. در تصویر زیر همانطور که مشاهده می نمایید، خبری از دسته "دوربین 2" وجود ندارد، زیرا از میان دسته های موجود در پایگاه داده حذف شده است.

دسته مورد نظر از لیست دسته ها حذف شد

خب دوستان عزیزم، به پایان این قسمت رسیدیم. من در قسمت آینده ، در مورد سایر گزینه های سایدبار سمت راست، توضیح خواهم داد. تا قسمت آینده شما را به خدای بزرگ می سپارم و در انتها توجه شما را به کدهای نهایی فایلهایی که در این قسمت تغییر کردند، جلب می کنم.

فایلهای نهایی

فایل نهایی index.php که در آدرس C:\wamp\www\ecommerce\admin_area واقع شده است.

<!-- start of Header -->
<?php	include('include/Header.php');	?>
<!-- end of Header -->				

<div id="templatemo_content">
	
	
	<!-- start of ocntent left -->
	<div id="templatemo_content_left">
		
		<?php 
			
			if(isset($_GET['insert_pro']))
			{
				include('insert_product.php');
			}			
			
			if(isset($_GET['view_pro']))
			{
				include('view_product.php');
			}
			
			if(isset($_GET['edit_pro']))
			{
				include('edit_product.php');
			}			
			
			if(isset($_GET['insert_cat']))
			{
				include('insert_cat.php');
			}
			
			if(isset($_GET['view_cats']))
			{
				include('view_cats.php');
			}
			
			if(isset($_GET['edit_cat']))
			{
				include('edit_cat.php');
			}
			
?>
		
		<div class="cleaner_with_height">&nbsp;</div>
	</div> 
	<!-- end of ocntent left -->
	
	<!-- start of right content -->
	<?php	include('include/Right_Sidebar.php');	?>
	<!-- end of right content -->
	
	<div class="cleaner">&nbsp;</div>
	</div>
	
	<!-- start of footer -->
	<?php include('include/Footer.php');	?>
	<!-- end of footer -->

فایل نهایی edit_cat.php که در آدرس C:\wamp\www\ecommerce\admin_area واقع شده است.

<?php
	
	$cat_id=$_GET['edit_cat'];
	$select_cat="select * from categories where cat_id='$cat_id' ";
	$run_cat=mysqli_query($con,"SET NAMES SET utf8");
	$run_cat=mysqli_query($con,"SET CHARACTER SET utf8");
	$run_cat=mysqli_query($con,$select_cat);
	$row_cat=mysqli_fetch_array($run_cat);
	$title_cat=$row_cat['cat_title'];
	
?>
<form method="post" action="" >
	<table  width="650" align="center" style="border: none;" >
		<caption style="border: none;" ><b>دسته خودتان را مورد ویرایش قرار دهید.</b></caption >
		<tr style="border: none;">
			<td style="border: none;"><b>نام دسته :</b></td >
			<td style="border: none;"><input type="text" name="update_cat" size="40" placeholder="<?php echo $title_cat  ?>" ></td >
			<td style="border: none;"><input type="submit" name="update_old_cat" value="دسته ویرایش شود."/></td >
		</tr>
	</table>
</form>
<?php
	if(isset($_POST['update_old_cat'])){
		$update_old_cat=$_POST['update_cat'];
		$update_cat="update categories set cat_title=N'$update_old_cat' where cat_id='$cat_id'";
		$run_update_cat = mysqli_query($con,$update_cat);
		if($run_update_cat)
		{
			echo "<script>alert('دسته شما به درستی به روز رسانی شد.')</script>";
			echo "<script>window.open('index.php?view_cats','_self')</script>";
		}
	}
?>

فایل نهایی delete_cat.php که در آدرس C:\wamp\www\ecommerce\admin_area واقع شده است.

<html lang="fa"  dir="rtl">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	</head>
	<body>
		<?php
			include("include/db.php");
			if(isset($_GET['delete_cat'])){
				$delete_id_cat=$_GET['delete_cat'];
				$delete_cat="delete from categories where cat_id='$delete_id_cat' ";
				$run_delete_cat=mysqli_query($con,$delete_cat);
				if($run_delete_cat)
				{
					echo "<script>alert('این دسته با موفقیت از میان دسته های شما حذف شد.')</script>";
					echo "<script>window.open('index.php?view_cats','_self')</script>";
				}
			}
		?>
	</body>
</html>

 

 

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری فروشگاه اینترنتی با PHP توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

عرفان
22 مرداد 1402
سلام چرا همه دسته ها پاک میشوند.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.