У меня есть 5 типов пользователей, и некоторые из них имеют доступ к большему количеству функций, чем другие.
В моей базе данных у меня есть таблица для user_type
и стол для users
, в user
таблица у меня есть столбец rion
для которого только один из пользовательских типов имеет значения. Мне нужно получить только существующие значения без пустых или нулевых или 0-значных данных с PHP для использования в компоненте выбора.
Запрос, который я сейчас использую:
SELECT COUNT(*) AS `Rows`, `rion` FROM `rdb_users` GROUP BY `rion` ORDER BY `rion`
и мой код PHP выглядит так:
<div class="col-sm-4 col-lg-5 controls">
<?php $CI=g et_instance(); $CI->load->model('show/show_model'); $agents = $CI->show_model->get_users_by_range('all','','rion');?>
<select name="created_by" class="form-control input-sm">
<?php $v=( set_value( 'created_by')!='' ) ? set_value( 'created_by') : $CI->session->userdata('user_id'); ?>
<?php foreach ($agents->result() as $agent) { $sel = ($agent->id== $v)?'selected="selected"':'';?>
<option value="<?php echo $agent->rion; ?>" <?php echo $sel;?>>
<?php echo $agent->rion;?>
</option>
<?php } ?>
</select>
</div>
Но этот код дает все данные из столбца, включая пустые, нулевые или пустые поля, и показывает их в меню выбора. Как я могу отредактировать этот код, чтобы скрыть или удалить пустые значения из других типов пользователей? Мне нужны только данные от пользователей типа «агент».
Вы можете добавить WHERE
пункт к вашему запросу.
SELECT COUNT(*) AS Rows, rion FROM rdb_users
WHERE rion
GROUP BY rion ORDER BY rion
Если вы просто используете WHERE rion
вместо того, чтобы сравнивать его с конкретным значением, оно будет оцениваться как логическое значение, поэтому оно должно исключать все null
, ''
, а также 0
ценности.
Или, если вы хотите отображать данные только одного типа использования, укажите этот тип в WHERE
пункт.
SELECT COUNT(*) AS Rows, rion FROM rdb_users
WHERE user_type = 'agent'
GROUP BY rion ORDER BY rion
Или, если вы хотите только этот тип, но некоторые пользователи с этим типом не имеют значения для rion
Вы можете использовать оба критерия.
SELECT COUNT(*) AS Rows, rion FROM rdb_users
WHERE rion AND user_type = 'agent'
GROUP BY rion ORDER BY rion
Других решений пока нет …