我有5种类型的用户,其中一些用户可以访问比其他用户更多的功能。
在我的数据库中,我有一个user_type
表和一个users
表。在user
表中,我有一个列rion
,其中只有一个用户类型具有值。我需要只获取现有的值,而不使用空的或null或0值数据,以便在select组件中使用。
我目前使用的查询是:
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>
但是此代码提供了列中的所有数据,包括无值,空或空字段,并在选择菜单中显示这些数据。如何编辑此代码以隐藏或删除其他用户类型中的空值?我只需要来自“代理”类型用户的数据。
答案 0 :(得分:0)
您可以在查询中添加WHERE
子句。
SELECT COUNT(*) AS Rows, rion FROM rdb_users
WHERE rion
GROUP BY rion ORDER BY rion
如果您只使用WHERE rion
而不是将其与特定值进行比较,则会将其评估为布尔值,因此它应排除所有null
,''
和{{1} }值。
或者,如果您只想显示一种使用类型的数据,请在0
子句中指定该类型。
WHERE
或者,如果您只想要该类型,但某些类型的用户不具有SELECT COUNT(*) AS Rows, rion FROM rdb_users
WHERE user_type = 'agent'
GROUP BY rion ORDER BY rion
的值,则可以同时使用这两种标准。
rion