پنجشنبه ۰۴ اردیبهشت ۱۴۰۴

Thursday, April 24, 2025 GMT +3:30

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

mysql-multiple-checkbox

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

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


برای درک بهتر این شیوه، آموزش را در قالب یک مثال ادامه می دهیم، ابتدا با استفاده از منوی Databases در برنامه phpMyAdmin یک پایگاه داده فرضی با نام db_test می سازیم، ترجیحا این کار را در لوکال هاست (برنامه WampServer) با درج آدرس
localhost/phpmyadmin
در مرورگر انجام می دهیم اما اگر بر روی سرور آنلاین باشیم احتمال دارد این قسمت توسط پشتیبانی فنی هاست محدود و غیرفعال شده باشد که در این صورت باید از طریق کنترل پنل اصلی سایتمان، بخش مدیریت Database ها را انتخاب و یک پایگاه داده جدید ایجاد نمائیم، فراموش نکنیم که در همین قسمت باید یک کاربر نیز به پایگاه داده جدید اختصاص دهیم، پس از ساخت دیتابیس در قسمت SQL برنامه phpMyAdmin کد زیر را درج و اجرا می کنیم تا جدولی با نام tbl_test با مقادیر پیش فرض جهت نمونه در آن ایجاد شود (ساخت جدول و ستون ها را به صورت دستی نیز می توانیم انجام دهیم، برای ایجاد جدول به صورت دستی بر روی دیتابیس مورد نظر در برنامه phpMyAdmin کلیک کرده، از قسمت Create table نام جدول و تعداد ستون ها را مشخص می کنیم، سپس بر روی دکمه Go کلیک کرده و پس از اعمال تنظیمات مربوط به هر ستون، در نهایت با دکمه Save جدول و ستون ها را ایجاد می کنیم، اگر هم جدول را بدون ستون ها ایجاد کرده باشیم یا بخواهیم ستون های دیگری به آن اضافه کنیم، ابتدا جدول مورد نظر را با کلیک بر روی نام آن انتخاب و سپس در منوی Structure از امکانات بخش Add column که معمولا در انتهای لیست ستون ها است می توانیم استفاده کنیم، برای درج نمونه ردیف های اطلاعات نیز منوی Insert کاربرد دارد):
CREATE TABLE `tbl_test` (
 `id` INT NOT NULL AUTO_INCREMENT,
 `name` VARCHAR(255) NOT NULL DEFAULT '',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM;
INSERT INTO `tbl_test` VALUES (1, 'user_1');
INSERT INTO `tbl_test` VALUES (2, 'user_2');
INSERT INTO `tbl_test` VALUES (3, 'user_3');
INSERT INTO `tbl_test` VALUES (4, 'user_4');
INSERT INTO `tbl_test` VALUES (5, 'user_5');
INSERT INTO `tbl_test` VALUES (6, 'user_6');

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


پس از ساخت دیتابیس، جدول و INSERT نمونه اطلاعات فرضی، باید رابط کاربری HTML و کدنویسی PHP سمت سرور را آماده کنیم، برای این منظور ابتدا کد پایه زیر را که جهت درک بهتر روند کار تا حد امکان مختصر شده و صرفا شامل مراحل ضروری دریافت و حذف اطلاعات از جمله متغیرهای دریافت پارامترها در هنگام ارسال فرم با متد POST، تنظیمات مربوط به اتصال به پایگاه داده، دریافت اسامی کاربران و نمایش آنها به صورت ردیف به ردیف در صفحه مرورگر، ویژگی های تعاملی مورد نیاز مانند دکمه های چک باکس، دکمه ارسال فرم و پرس و جوی دریافت و حذف اطلاعات با بررسی توسط دستورات شرطی (if، else و...) و مواردی از این دست است را در یک فایل PHP با نام دلخواه (به طور مثال delete.php) درج و در ادامه این کد را توسعه داده و موارد پیشرفته تری که ممکن است مورد نیاز کاربران مختلف باشد را اضافه می کنیم:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | حذف گروهی اطلاعات از دیتابیس با چک باکس - کد پایه</title>
<!-- Webgoo.ir -->
<style type="text/css">
.row-container{
    direction:rtl;
}
.row-1 {
    background:#FFFFFF;
}
.row-2 {
    background:#CCCCCC;
}
</style>
</head>
<body>
<div class="row-container">
<?php
//تنظیمات پایگاه داده
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "db_test";
$tbl_name = "tbl_test";

//متغیرهای تعیین رنگ ردیف ها
$color_1 = '1';
$color_2 = '2';
$color = $color_1;

//دریافت پارامترها در هنگام ارسال فرم
@$users = $_POST['users'];
@$check = $_POST['check'];

//اتصال با دیتابیس
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if(!$conn) {
    echo "Error!: " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else {
    //اجرای پرس و جوی حذف ردیف ها در صورت ارسال فرم
    if($check == 1){
        $del_param = null;
        $count_users = count($users);
        
        for($i = 0; $i < $count_users; $i++){
            $del_param .= "id=$users[$i]";
            if($i + 1 < $count_users){
                $del_param .= " OR ";
            }
        }
    
        if($count_users > 0){
            $query = mysqli_query($conn, "DELETE FROM $tbl_name WHERE $del_param");
            if(!$query) {
                echo "Error!: " . mysqli_error($conn) . '<br>';
            } else{
                echo 'تعداد ' . $count_users .' ردیف با موفقیت حذف شد!' . '<br>';
            }
        } else{
            echo 'فیلدی برای حذف انتخاب نشده است!' . '<br>';
        }
    }
    
    //پرس و جوی دریافت ردیف ها از دیتابیس و نمایش به صورت ردیف به ردیف
    $query = mysqli_query($conn, "SELECT id, name FROM $tbl_name ORDER BY id ASC LIMIT 10");
    if(!$query) {
        echo "Error!: " . mysqli_error($conn);
    } elseif(!mysqli_num_rows($query) > 0){
        echo 'کاربری برای نمایش وجود ندارد!' . '<br>';
    } else {
        echo '<form action="#" method="post">' . "\n";
                
        while($row = mysqli_fetch_array($query)){
            echo '<div class="row-' . $color . '">' . "\n" .
            '<input name="users[]" type="checkbox" value="' . $row['id'] . '">نام کاربر: ' . $row['name'] . "\n" .
            '</div>' . "\n";
            
            if($color == $color_1){
                $color = $color_2;
            } else{
                $color = $color_1;
            }
        }
        
        echo '<input name="check" type="hidden" value="1">' . "\n";
        echo '<input type="submit" value="حذف">' . "\n";
        echo '</form>' . "\n";
    }
}
?>
</div>
</body>
</html>
همان طور که گفتیم کد بالا شامل دو قسمت اصلی است، ابتدا فرم HTML و اسامی موجود در دیتابیس به صورت ردیف به ردیف در صفحه مرورگر چاپ می شود تا کاربر پس از انتخاب موارد مورد نظر خود و کلیک بر روی دکمه حذف، اسامی را به صورت یک آرایه به سرور ارسال کند، در سرور اطلاعات ارسال شده با متد POST دریافت شده و پردازش های مورد نیاز صورت می گیرد، برای درک بهتر این شیوه کد را به صورت قسمت به قسمت بررسی می کنیم:
- ابتدا مواردی که باید در قسمت تگ html و body درج شوند را قرار می دهیم، این موارد شامل تیتر دلخواه صفحه و استایل CSS است که در فرمت بندی خروجی کار نقش ایفا می کنند، چند کلاس ساده جهت نمونه درج شده که می توانید بر حسب نیاز آنها را تغییر دهید.
- سپس اطلاعات اتصال به پایگاه داده را در قسمت مربوط به آن تنظیم می کنیم، این اطلاعات شامل نام میزبان (معمولا localhost)، نام کاربری و کلمه عبور جهت اتصال به دیتابیس (معمولا در لوکال هاست عبارت root و بدون کلمه عبور) و عنوان دیتابیس مورد نظر است، در همین قسمت نام جدول را نیز در متغیر tbl_name تعریف کرده ایم، کد از اکستنشن MySQLi در حالت برنامه نویسی رویه ای (Procedural) استفاده می کند، قاعدتا اگر با حالت شی گرا یا اکستشن PDO آشنا باشیم، تبدیل این کد کار ساده ای خواهد بود.
- در ادامه، دستورات مربوط به قسمت حذف ردیف ها را نوشته ایم، این بخش از برنامه تنها زمانی اجرا خواهد شد که کاربر فرم را ارسال کرده و متغیر check برابر با 1 باشد، لذا تا زمانی که کاربر فرم را ارسال نکند، این بخش در فرآیند اجرا عملا تاثیری نخواهد داشت، در همین قسمت برای بهینه بودن کدنویسی تعداد فیلدهای ارسالی کاربر را شمارش کرده و در حلقه for برای بخش WHERE در دستور DELETE پارامترهای داینامیک نوشته ایم، به طور مثال اگر کاربر سه فیلد را انتخاب کند متغیر del_param به شکل زیر ایجاد و جایگزین می شود:
id=1 OR id=4 OR id=6
با این روش برای هر تعداد فیلدی که کاربر ارسال کند تنها یک پرس و جوی DELETE اجرا خواهد شد و از منابع دیتابیس کمتر استفاده شده و در نتیجه سرور فشار کمتری را متحمل می شود که این چاره اندیشی برای بهینه بودن برنامه های با تعداد کاربر بالا ضروری است.
- بخش اصلی دیگر مربوط به دستور SELECT و دریافت مشخصات کاربران از دیتابیس است که در حلقه while این کار را انجام داده و خروجی HTML مورد نیاز را با استفاده از اطلاعات موجود در دیتابیس (ستون id و name) به صورت دلخواه ایجاد کرده ایم، با کمی سلیقه می توانیم به کمک استایل CSS شکل و فرم کار را سفارشی سازی کنیم، در اینجا نیز با مقداردهی چند متغیر ردیف ها را با دو رنگ متمایز کرده ایم که در خروجی به شکل نمونه زیر چاپ می شوند:
<div class="row-1">
<input name="users[]" type="checkbox" value="1">نام کاربر: user_1
</div>
<div class="row-2">
<input name="users[]" type="checkbox" value="2">نام کاربر: user_2
</div>
<div class="row-1">
<input name="users[]" type="checkbox" value="3">نام کاربر: user_3
</div>
<div class="row-2">
<input name="users[]" type="checkbox" value="4">نام کاربر: user_4
</div>
اگر به کلاس ها دقت کنیم، ردیف به ردیف عدد متناظر کلاس با شماره های 1 و 2 جایگزین شده (row-1 و row-2) که با تعریف این کلاس ها در قسمت CSS می توانیم دو رنگ مجزا برای ردیف ها داشته باشیم که این به زیبایی و خوانا شدن رابط کاربری کمک می کند.
نکته: برای ارسال گروهی فیلدهای input از نوع checkbox باید در انتهای قسمت name آنها از علامت [] استفاده کنیم:
<input name="users[]" type="checkbox" value="1">
با این کار مقدار فیلدها در قالب یک آرایه به سرور ارسال می شود و می توان در سرور با استفاده از حلقه for یا foreach مقادیر را استخراج کرد، در این حالت چک باکس ها را در اصطلاح چندگانه (Multiple) یا گروهی اطلاق می کنند.

توسعه کد HTML و PHP حذف گروهی اطلاعات با امکانات بیشتر


برای تکمیل آموزش، کد بالا را با چند امکان کاربردی دیگر توسعه داده ایم که در زیر ملاحظه می کنید، این امکانات بسته به نیاز و هدفمان می توانند به نحو دلخواه به کد اضافه شوند، برای نمونه امکان انتخاب و عدم انتخاب چک باکس ها به صورت گروهی (Toggle Checkbox) با جاوا اسکریپت را به کد اضافه کرده ایم، قابلیت اعتبارسنجی و نمایش پیام اخطار در حالتی که کاربر هیچ کدام از چک باکس ها را انتخاب نکرده اما بر روی دکمه حذف کلیک می کند و هچنین در نظر گرفتن حالت حذف دو مرحله ای با پرسش از کاربر:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | حذف گروهی اطلاعات از دیتابیس با چک باکس - توسعه کد با امکانات بیشتر</title>
<!-- Webgoo.ir -->
<style type="text/css">
.row-container{
    direction:rtl;
}
.row-1 {
    background:#FFFFFF;
}
.row-2 {
    background:#CCCCCC;
}
#confirm-id{
    display:none;
    position:absolute;
    height:50px;
    width:200px;
    top:50%;
    left:50%;
    margin-top:-25px;
    margin-left:-100px;
    text-align:center;
    background:#E5E5E5;
    border:1px solid #666666;
}
</style>
<script type="text/javascript">
var checked = false;
function checkboxToggle(name){
    var form = document.forms[name];
    
    if(checked == false) {
        checked = true
    } else {
        checked = false
    }

    for(var i = 0; i < form.elements.length; i++) {
        if(form.elements[i].type == 'checkbox'){
            form.elements[i].checked = checked;
        }
    }
}

function formCheck(form){
    var check_one = false;
    var check_confirm;
    
    for(var i = 0; i < form.elements.length; i++) {
        if(form.elements[i].type == 'checkbox' && form.elements[i].checked){
            check_one = true;
            break;
        }
    }
    
    if(check_one){
        check_confirm = 'آیا مطمئن هستید؟<br>';
        check_confirm += '<input type="button" value="بله" onclick="formSubmit(\'' + form.name + '\');">';
        check_confirm += '<input type="button" value="خیر" onclick="closeConfirm(\'confirm-id\');">';
        
        document.getElementById('confirm-id').innerHTML = check_confirm;
        document.getElementById('confirm-id').style.display = 'block';
    } else{
        alert('لطفا حداقل یک کاربر را انتخاب نمائید!');
    }
}

function formSubmit(name){
    closeConfirm('confirm-id');
    document.forms[name].submit();
}

function closeConfirm(id){
    document.getElementById(id).style.display = 'none';
}
</script>
</head>
<body>
<div class="row-container">
<?php
//تنظیمات پایگاه داده
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "db_test";
$tbl_name = "tbl_test";

//متغیرهای تعیین رنگ ردیف ها
$color_1 = '1';
$color_2 = '2';
$color = $color_1;

//دریافت پارامترها در هنگام ارسال فرم
@$users = $_POST['users'];
@$check = $_POST['check'];

//اتصال با دیتابیس
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if(!$conn) {
    echo "Error!: " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else {
    //اجرای پرس و جوی حذف ردیف ها در صورت ارسال فرم
    if($check == 1){
        $del_param = null;
        $count_users = count($users);
        
        for($i = 0; $i < $count_users; $i++){
            $del_param .= "id=$users[$i]";
            if($i + 1 < $count_users){
                $del_param .= " OR ";
            }
        }
    
        if($count_users > 0){
            $query = mysqli_query($conn, "DELETE FROM $tbl_name WHERE $del_param");
            if(!$query) {
                echo "Error!: " . mysqli_error($conn) . '<br>';
            } else{
                echo 'تعداد ' . $count_users .' ردیف با موفقیت حذف شد!' . '<br>';
            }
        } else{
            echo 'فیلدی برای حذف انتخاب نشده است!' . '<br>';
        }
    }
    
    //پرس و جوی دریافت ردیف ها از دیتابیس و نمایش به صورت ردیف به ردیف
    $query = mysqli_query($conn, "SELECT id, name FROM $tbl_name ORDER BY id ASC LIMIT 10");
    if(!$query) {
        echo "Error!: " . mysqli_error($conn);
    } elseif(!mysqli_num_rows($query) > 0){
        echo 'کاربری برای نمایش وجود ندارد!' . '<br>';
    } else {
        echo '<form name="del-form" action="#" method="post">' . "\n";
        echo '<input id="del-toggle" type="checkbox" onclick="checkboxToggle(\'del-form\');">' . "<hr>\n";
        
        while($row = mysqli_fetch_array($query)){
            echo '<div class="row-' . $color . '">' . "\n" .
            '<input name="users[]" type="checkbox" value="' . $row['id'] . '">نام کاربر: ' . $row['name'] . "\n" .
            '</div>' . "\n";
            
            if($color == $color_1){
                $color = $color_2;
            } else{
                $color = $color_1;
            }
        }
        
        echo '<input name="check" type="hidden" value="1">' . "\n";
        echo '<hr><input type="button" value="حذف" onclick="formCheck(this.form);">' . "\n";
        echo '</form>' . "\n";
        echo '<div id="confirm-id"></div>' . "\n";
    }
}
?>
</div>
</body>
</html>
برای اعمال این نوع امکانات معمولا باید از کدنویسی سمت کاربر و به طور خاص کدنویسی جاوا اسکریپت بهره جست، در نمونه کد بالا نیز برای ایجاد حالت انتخاب چندگانه، یک فیلد input از نوع checkbox در نظر گرفتته ایم که با رویداد onclick تابع checkboxToggle را فراخوانی می کند:
<input id="del-toggle" type="checkbox" onclick="checkboxToggle('del-form');">
آرگیومنت این تابع مقادیر name فرم HTML است که در این مثال با عبارت del-form مشخص است، در تابع با متد document.forms به فرم دسترسی پیدا کرده و بررسی می کنیم که اگر چک باکس های فرم مد نظر حالت checked (تیک فعال) نداشته باشند، آنها را به صورت checked تنظیم کنیم و برعکس اگر به صورت checked بودن تیک آنها را برداریم، تابع دیگر formCheck است که در زمان کلیک کاربر بر روی دکمه حذف فراخوانی می شود، آرگیومنت این تابع همان فرم HTML است که این بار به صورت آبجکت به تابع داده شده، در واقع دو روش زیر هر دو یک کارکرد دارند و صرفا به جهت جنبه های آموزشی از دو شیوه به ظاهر متفاوت در دو تابع استفاده شده:
document.forms[name]
this.form

<input type="button" value="حذف" onclick="formCheck(this.form);">
تابع formCheck از چند بخش تشکیل شده، در یک قسمت با متغیر check_one بررسی می کنیم که کاربر حداقل یک فیلد را انتخاب کرده باشد، در غیر اینصورت پیام قسمت alert اجرا می شود، در صورتی که کاربر حداقل یک فیلد را انتخاب کرده باشد یک کادر سفارشی با id دلخواه (در اینجا confirm-id) نمایش می دهیم، در این کادر با دو تابع formSubmit و closeConfirm رفتار مد نظر را بر اساس انتخاب کاربر اعمال می کنیم.
دسته بندی: آموزش کاربردی » MySQL
related مطالب بیشتر:
صفحه بندی مطالب و محتوا با PHP و MySQL
ساخت فید آر اس اس (RSS Feed) با استفاده از PHP و MySQL
آموزش ساخت فرم تماس با PHP و MySQL
ایجاد لینک دانلود مدت دار با PHP و MySQL
تعویض کد امنیتی Captcha با Ajax و MySQL
دیدگاه
more ۵۲ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
کامران
۱۸:۴۱ ۱۳۹۲/۰۲/۲۱
سلام چه جوری میشه اطلاعات به وسیله چک باکس insert کرد تو دیتابیس
می توانید مقادیری برای قسمت value چک باکس قرار دهید و با متد GET یا POST اطلاعات فرم را در سمت سرور دریافت و سپس آن اطلاعات را در دیتابیس ذخیره کنید، مثال:
<form action="index.php" method="post">
<input type="checkbox" name="check" value="1">
<input type="submit" value="ارسال">
</form>

<?php
$check = $_POST['check'];
$query = mysqli_query($conn, "INSERT INTO tbl(check) VALUE('$check')") or die(mysqli_error($conn));
?>
برای کسب اطلاعات بیشتر به آموزش های مقدماتی مراجعه کنید.
نکته: حفظ امنیت دیتابیس در کدهای بالا لحاظ نشده است، در صورت عدم آشنایی قبلی لطفا با مراجعه به آموزش های مقدماتی MySQL شیوه های جلوگیری از نفوذ به دیتابیس را فرا بگیرید.
shahin69
۱۴:۱۱ ۱۳۹۲/۰۲/۱۶
سلام
میخوام با استفاده از این کد اطلاعات insert و update کنم میشه بگید باید کجاشو تغییر بدم چه جوری باید عمل کنم میخوام چک باکس هم کنارش باشه؟؟
این آموزش صرفا یک نمونه برای راهنمایی بیشتر است، برای نوشتن برنامه های کاربردی سفارشی، باید به طور کلی به نحوه کار PHP و MySQL از مقدمات کار آشنا باشید، به هر صورت در این کد می توانید در حلقه for از مقادیر متغیر i استفاده کرده و مقادیر متناظر آن را از چک باکس دریافت کنید و به جای دستور DELETE دستورات دیگر را تنظیم نمائید، ممکن است نیاز به تعریف متغیرها و مقادیر دیگر نیز باشد که این بستگی به هدف و ساختار کد شما دارد.
shahin69
۱۸:۳۸ ۱۳۹۲/۰۲/۱۵
سلام دوستان عزیز
خسته نباشید
میخوام یک سیستم نوبت دهی پزشکی درست کنم که اینجوریه
من یه جدول در دیتابیسم دارم در محیطphpmy admin که چهار تا فیلد داره یکی اسم و دیگری روزهای هفته و دیگری زمان که فیلد زمان از نوع time که اینجوریه 5:15 و 5:30 و 5:45 و 6:00 همین جور تا 8 یعنی شنبه از 5 تا 8 و یکشنبه 5 تا 8 و تا پنجشنبه که زمان ها به فاصله ربع ساعت هستن . میخوام فیلد زمان و فیلد روزای هفته رو به کاربر نشون بدم همراه با چک باکس کنارش.
که تا اینجاش رو انجام دادم از این به بعدش رو میخوام....
که زمانی که کاربر یکیش رو تیک میزنه و بعدش submit و زد یک صفحه یا یک کادر براش باز شه اسم و فامیلش رو بگیره و تو دیتابیسم ذخیره شه
چه جوری باید ذخیره بشه؟ که من بدونم چه کسی چه روز و ساعتی رو نوبت گرفته؟
ایا اون فیلد زمان در دیتابیس باید از نوع time باشه؟؟؟
value چک باکس باید زمان بزارم یعنی هر چک باکس یک value داره مثلا 5:15 و دیگری 5:30 و... ایا این درسته؟؟؟؟؟؟
خواهشا راهنماییم کنید؟؟؟؟
قبل از هر چیز بهتر است که از منوی باز شو (select option) برای داده هایی که حالت لیست دارند استفاده کنید، هرچند اینکه داده ها چگونه ارسال شوند در کل اهمیت اساسی ندارد، در مورد سوال شما کافی است نام کاربر را از یک فیلد متنی، زمان را از لیست (از value لیست)، روز هفته را هم به همین ترتیب دریافت کنید، سپس جدول شما باید یک مقادیر id نیز از نوع INT NOT NULL AUTO_INCREMENT داشته باشد، سپس با ارسال موارد، برای هر کاربر یک ردیف ایجاد می شود که در ستون نام، نام کاربر، ستون روزهای هفته، روز مورد نظر و در ستون زمان، زمان ارسال شده ثبت می شود، به این صورت به راحتی می توانید بدانید که چه کاربر چه روز و زمانی نوبت گرفته است، نوع TIMEبودن مهم نیست چون مقادیر زمان ها ثابت هستند و نیازی به محاسبات خاصی نیست.
هدایت
۰۲:۰۱ ۱۳۹۲/۰۱/۰۴
سلام
اگه به جای این که اطلاعات حذف بشه بخواهیم اطلاعات ذخیره بشه باید از چه دستوری استفاده بکنیم با تشکر
برای ذخیره اطلاعات باید از دستور INSERT و برای به روز رسانی از دستور UPDATE در MySQL استفاده کنید که البته Syntax خاص خودشان را دارند.
yas
۲۲:۴۷ ۱۳۹۱/۱۲/۰۹
سلام
من تمام مراحل رو انجام دادم اما هیچ اتفاقی نمیفته
فقط صفحه refresh می شه و delete؟می شه دوباره کدتون رو چک کنید، متغیر delete همش تعداد رکورد است 6
خیلی ممنون از یادآوری شما، چند اشتباه مختصر در کد وجود داشت، مطلب مجددا بررسی و آموزش به طور کامل اصلاح شد.
Ady
۰۰:۱۷ ۱۳۹۱/۱۲/۰۴
فقط خواستم تشکر کنم. کار بزرگی انجام میدید و امیدوارم هیچ چیز باعث دلسردی و نا امیدی شما عزیزان نشه.
به جرات و با اطمینان اعلام میکنم که در بین همه سایتهایی که به زبان پارسی مطالب آموزشی را به اشتراک میگزارند، شما بهترین هستند.
هر جا که هستید شاد و پیروز باشید.
خیلی ممنون از این همه لطف.
خالق
۱۳:۳۷ ۱۳۹۱/۱۰/۰۴
سلام
می خواهم در یک پروژه اخبار های گذشته ام را حذف کنم از طریق کدهای php چگونه می توان این کار را کرد؟ اگر این کدها را برایم به ایمیلم روان کنید بزرگی می کنید ممنون
برای حذف اطلاعات از دیتابیس باید با PHP و MySQL آشنا باشید، آنگاه از نمونه کد همین آموزش هم متناسب با دیتابیس و ستون های مورد نظر خود می توانید استفاده کنید، به طور مثال تاریخ پست ها را مورد بررسی قرار دهید و هر پستی که از تاریخ مشخصی قدیمی تر بود را حذف کنید یا هر پستی که به فرض آی دی آن کوچکتر از مقادیر مورد نظر شما است را حذف کنید، در کل باید بر نحوه کار PHP و MySQL تسلط نسبی داشته باشید.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
7 × 2
20 × 20
=