开发者

How do I add on multiple $_POST['row'] and variables? [closed]

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. Closed 9 years ago.

I am struggling to find out the syntactically correct wa开发者_如何学编程y in which to add on more variables and rows to these statements:

/* WANT TO ADD ON FIVE MORE $_POST[''] */

if(isset($_POST['check_prof']) && $_POST['check_prof'] == 'checked') {
$check_prof = "checked";
}else{
$check_prof = "unchecked";
} 

/* SAME HERE, WANT TO ADD THE OTHER FIVE IN HERE AS WELL */

$query = "UPDATE `Users` SET `check_prof` = '" . $check_prof . "' WHERE `id` = '" . $auth->id . "' LIMIT 1";
    mysql_query($query,$connection);
    $auth->refresh();
    }


Do you mean like this?

$fields = array('check_prof', 'check_this', 'check_that', 'check_whatever');

foreach($fields as $field){
    isset($_POST[$field] && $_POST[$field] == 'checked')){
        $$field='checked';
    } else {
        $$field='unchecked';
    }

    $query = "UPDATE `Users` SET `$field` = '" . $$field . "' WHERE `id` = '" . $auth->id . "' LIMIT 1";
    mysql_query($query,$connection);
    $auth->refresh();
}

By the way, instead of storing "checked" and "unchecked" in your database (as a varchar) you can store it as type tinyint(1) and just use a 0 or a 1. It will take up way less space.

Another thing, this will do a separate query for each field. It's more efficient to write one query to do the changes for all fields if performance is a concern.


Assuming I'm understanding what you mean, try this:

<?php
$arr = array('check_prof' => 'unchecked',
            'check_student' => 'unchecked');
foreach($arr as $field => $checked) {
    if (isset($_POST[$field]) && $_POST[$field] == 'checked') {
        $arr[$field] = 'checked';
    }
    // I don't know where $auth is coming from
    $query = "UPDATE `Users` SET `$field` = '" . $arr[$field] . "' WHERE `id` = '" . $auth->id . "' LIMIT 1";
    mysql_query($query,$connection);
    $auth->refresh();
}
?>

You would simply need to add fields as needed to $arr for it to loop through.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜