Возвращает логическое значение из MySQL для использования его в функции в качестве параметра - PullRequest
0 голосов
/ 20 марта 2012

Я создаю простые формы регистрации пользователей и обновления информации, которые имеют много флажков с CodeIgniter.Я храню значения флажков 1 (если отмечен) и 0 (если не отмечен) в базе данных MySQL под полями tinyint(1).Поэтому в форме обновления пользователя я должен установить значения по умолчанию, которые возвращаются из этих полей MySQL.С другой стороны, данные не должны быть потеряны, если проверка формы не пройдена.Из-за этого мне нужно использовать set_checkbox функцию CI с третьим параметром, например:

<input type="checkbox" name="my_field" value="1" <?php echo set_checkbox('my_field', '1', $returned_boolean_value); ?> >

Но это не работает, потому что мой запрос MySQL не возвращает логическое значениезначение для переменной $returned_boolean_value.Возвращает 0 или 1 в виде строки.Таким образом, PHP-запрос становится примерно таким:

set_checkbox('my_field', '1', '1');

, но он должен выглядеть примерно так:

set_checkbox('my_field', '1', TRUE);

Мой вопрос заключается в том, как установить третий логический параметр set_checkbox с помощьюданные, которые возвращаются из базы данных?

Я тоже посмотрел кинь соответствующие вопросы, но ничего не нашел по этому поводу.Любая помощь будет оценена.Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 20 марта 2012

Приведение к логическому значению

<?php echo set_checkbox('my_field', '1', (boolean) $returned_boolean_value); ?> 
1 голос
/ 20 марта 2012

Другая опция, использующая стиль C ++, если / else

set_checkbox('my_field', '1', $returned_boolean_value ? TRUE : FALSE);
0 голосов
/ 20 марта 2012
<?php echo set_checkbox('my_field', '1', (int) $returned_boolean_value); ?> 
<?php echo set_checkbox('my_field', '1', intval($returned_boolean_value)); ?> 
<?php echo set_checkbox('my_field', '1', (bool)$returned_boolean_value); ?> 
<?php echo set_checkbox('my_field', '1', $returned_boolean_value=='1'?true:false); ?> 

Вы можете использовать один из вышеперечисленных ...

0 голосов
/ 20 марта 2012

Вы можете использовать старое доброе двойное отрицание или сравнение строк

http://codepad.org/Y7W0WWau

set_checkbox('my_field', '1', !! $string_0_or_1 );
set_checkbox('my_field', '1', $string_0_or_1 == '1' );
...