Как сохранить значение флажка как да в базе данных MySql - PHP

Итак, когда пользователь создает учетную запись, и ему нужно поставить галочку, чтобы продолжить, что работает, но как мне сохранить, что он ее принял (даже если он не может создать учетную запись, не приняв ее). Но мы хотим сохранить его тем не менее.

Флажок

<input type="checkbox" name="agree" value="accepted">

PHP

if ($_POST['agree'] != 'accepted') {
             $error[] = 'Please indicate that you have read and agree to the Terms and Conditions and Privacy Policy';
    } else {
            $stmt = $db->prepare('SELECT termsAccepted FROM members WHERE termsAccepted = :??????');
    $stmt->execute(array(':??????' => $?????));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);

    }

person valeriu7474    schedule 30.05.2020    source источник
comment
Отвечает ли это на ваш вопрос? Вставить данные флажка в mysql   -  person Abdelsalam Shahlol    schedule 30.05.2020


Ответы (2)


Если флажок не установлен, в переменной $_POST не будет индекса agree, поэтому заранее проверьте его существование, чтобы предотвратить появление предупреждений в журнале.

После этого вы можете использовать запрос UPDATE для изменения столбца termsAccepted в таблице members.

псевдокод:

if (isset($_POST['agree']) && $_POST['agree'] == 'accepted') {
    $stmt = $db->prepare('UPDATE members SET termsAccepted=1 WHERE id = :user_id');
    $stmt->execute(array(':user_id' => $user_id));
}

Совет. Если вы сохраняете только true или false, вы можете использовать тип данных TINYINT(1) или BOOLEAN для столбца termsAccepted, так как он хранит только два состояния.

person dreiekk    schedule 30.05.2020

Вы можете сделать запрос if в своем запросе "else"

if ($_POST['agree'] == 'accepted') {
 $checkbox = "true";
} else {
 $checkbox = "false";
}

И тогда вы можете добавить $checkbox в свой исполняемый массив, но вам следует пересмотреть подготовленный оператор.

person DerLino    schedule 30.05.2020