تبلیغات
Fact World - آموزش حذف گروهی اطلاعات از MySQL با استفاده از چک باکس

آموزش برنامه نویسی و مهارتهای وب

article 

آموزش حذف گروهی اطلاعات از MySQL با استفاده از چک باکس

mysql-multiple-checkbox یکی از مزایای استفاده از پایگاه داده و سیستم های داینامیک در مقایسه با شیوه های سنتی و استاتیک مدیریت اطلاعات، افزایش سرعت انجام کارها و قابلیت پردازش چندین دستور مختلف در یک لحظه و صرفه جویی در وقت است، به طور مثال فرض کنید می خواهیم اسامی تعدادی از کاربران سایتمان را از لیستی حذف کنیم، انجام این کار به شیوه سنتی مستلزم صرف وقت بسیار و دردسرهای خاص خودش است که باعث می شود ضریب اشتباه نیز افزایش یابد، اما کافی است یک بار در نوشتن یک کد داینامیک دقت کنیم تا از آن در دفعات بعدی، چندین و چند بار استفاده نمائیم؛ از این رو در این مطلب می خواهیم یکی از پرکاربرد ترین شیوه ها، یعنی نحوه حذف گروهی اطلاعات از دیتابیس را به وسیله چک باکس چند گانه (multiple checkbox) آموزش دهیم.

ساخت دیتابیس، جدول و اطلاعات فرضی


برای درک بهتر این شیوه، آموزش را در قالب یک مثال ادامه می دهیم؛ ابتدا با استفاده از برنامه phpMyAdmin یک پایگاه داده فرضی با نام db_test_mysql بسازید (ترجیحا این کار را در لوکال هاست انجام دهید)، سپس در قسمت sql کد زیر را اجرا کنید تا جدولی با نام tb_test_mysql با مقادیری پیش فرض جهت نمونه در آن ایجاد شود (این کار را به صورت دستی نیز می توانید انجام دهید):
CREATE TABLE `tb_test_mysql` (
 `id` INT NOT NULL auto_increment,
 `name` varchar(65) NOT NULL default '',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM;
INSERT INTO `tb_test_mysql` VALUES (1, 'Jamshid');
INSERT INTO `tb_test_mysql` VALUES (2, 'Mohammad');
INSERT INTO `tb_test_mysql` VALUES (3, 'Vahid');
INSERT INTO `tb_test_mysql` VALUES (4, 'Sasan');
INSERT INTO `tb_test_mysql` VALUES (5, 'Akbar');
INSERT INTO `tb_test_mysql` VALUES (6, 'Farshad');

کد PHP برای حذف گروهی اطلاعات


اکنون دیتابیس و جدول با ردیف هایی فرضی آماده است تا از طریق فرم HTML و کدهای PHP دستورات مورد نظرمان را بر روی آنها اعمال کنیم؛ به این منظور کد زیر را با نام checkbox.php در یک فایل ذخیره و از طریق لوکال هاست یا سرور آن را فراخوانی نمائید:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>وبگو | آموزش حذف گروهی اطلاعات از دیتابیس با چک باکس</title>
<!-- http://webgoo.ir -->
</head>
<body>
<?php
//نام هاست
$host = "localhost";
//MySQL نام کاربری
$username = "root";
//MySQL کلمه عبور
$password = "";
//نام پایگاه داده
$db_name = "db_test_mysql";
//نام جدول
$tb_name = "tb_test_mysql";

@$checkbox = $_POST['checkbox'];
//print_r($checkbox);
$count = 0;

//اتصال به سرور و پایگاه داده
$con = mysql_connect("$host", "$username", "$password")
or die("اتصال امکان پذیر نیست");

//انتخاب پایگاه داده
mysql_select_db("$db_name")
or die("انتخاب پایگاه داده میسر نیست");
?>
<table width="400" dir="rtl">
<tr>
<td>
<form name="form" method="post" action="">
<table width="400" border="1">
<tr>
<td><strong>ردیف</strong></td>
<td><strong>آی دی</strong></td>
<td><strong>نام</strong></td>
</tr>
<?php
//انتحاب ردیف های دیتابیس
$sql = "SELECT * FROM $tb_name LIMIT 10";
$result = mysql_query($sql) or die("انتحاب ردیف های دیتابیس میسر نیست");
//چاپ چک باکس ها در حلقه
while($rows = mysql_fetch_array($result)){
?>
<tr>
<td>
<input name="checkbox[]" type="checkbox" value="<?php echo $rows['id']; ?>" />
</td>
<td><?php echo $rows['id']; ?></td>
<td><?php echo $rows['name']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center">
<input name="delete" type="submit" id="delete" value="حذف" />
</td>
</tr>
<?php
//اگر فرم ارسال شود کد زیر اجرا می شود
if($checkbox){
    //شمارش تعداد چک باکس های انتخاب شده
    @$count = count($checkbox);
    for($i = 0; $i < $count; $i++){
        @$del_id = $checkbox[$i];
        $sql = "DELETE FROM $tb_name WHERE id = '$del_id'";
        $result = mysql_query($sql) or die("حذف ردیف های دیتابیس میسر نیست");
    }
    //رفرش صفحه در صورت اجرای موفقیت آمیز کد
    if($result){
        echo '<meta http-equiv="refresh" content="0;URL=checkbox.php">';
    }
}
mysql_close($con);
?>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
توضیح:
- ابتدا اطلاعات اتصال به پایگاه داده را در قسمت مربوط به آن تنظیم می کنیم.
- سپس با اجرای دستور SELECT * FROM ردیف های مد نظرمان را از جدول مربوطه انتخاب کرده تا از ستون id برای قسمت value چک باکس ها و همچنین ستون name برای نمایش نام کاربر استفاده کنیم.
- برای محدود کردن تعداد نتایج از پارامتر LIMIT در پرس و جو استفاده می کنیم (با توجه به هدفتان این مورد می تواند اختیاری باشد).
- برای انتخاب و پردازش چندین چک باکس به صورت گروهی (multiple checkbox)، باید بعد از نام فیلد، علامت [] را اضافه کنیم (در مثال بالا []checkbox اطلاعات را به صورت یک آرایه در می آورد).
- همان طور که گفته شد، مقادیر value هر ردیف را برابر id آن قرار می دهیم و به این ترتیب هر کاربر یک آی دی اختصاصی دارد.
- اطلاعات چک باکس چندگانه در قالب یک آرایه ارسال می شود، لذا برای پردازش اطلاعات چک باکس گروهی باید از حلقه for استفاده کنیم، با این کار برای هر چک باکس انتخاب شده، یک بار پردازش را انجام می دهیم و مجددا سراغ چک باکس بعدی می رویم تا زمانی که متغیر i در حلقه for از متغیر count (تعداد کل چک باکس های انتخاب شده) کوچک تر است (برای آشنایی بیشتر در این زمینه به مبحث آرایه ها در PHP مراجعه کنید).
- در نهایت نیز با meta http-equiv refresh صفحه را رفرش می کنیم (همچنین می توانید کاربر را به صفحه ای دیگر بفرستید که برای این کار باید عنوان فایل و action را در فرم و کد تغییر دهید).
در مجموع درک این کد چندان سخت و پیچیده نیست، کافیست مراحل را گام به گام دنبال کنید؛ علاوه بر این می توانید از جاوا اسکریپت جهت ایجاد پیام هشدار برای حذف کاربر یا ایده های دیگر نیز استفاده نمائید که نیاز به آموزش در جای خود دارد، در اینجا هدف صرفا آشنایی با یک نمونه کد جهت حذف گروهی اطلاعات MySQL با PHP بود.
section دسته بندی: آموزش کاربردی - آموزش کاربردی MySQL -


یکشنبه 13 مهر 1393

نظرات ()


یکشنبه 26 شهریور 1396 10:42 ب.ظ
Hi there, just wanted to tell you, I liked this article.
It was inspiring. Keep on posting!
سه شنبه 15 فروردین 1396 05:02 ق.ظ
Hi there just wanted to give you a quick heads up.
The text in your content seem to be running off the screen in Safari.
I'm not sure if this is a formatting issue or something to do with web browser compatibility but I thought I'd post
to let you know. The design look great though!
Hope you get the issue solved soon. Thanks

نظر خود را ثبت کنید:

 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر



آگهی
آموزش طراحی سایت
webgoo.ir

آموزش برنامه نویسی و مهارتهای وب
امکانات جانبی


IP شما: ( )