PHP - 如何回显SQL列的一部分才有价值?

时间:2016-09-28 16:45:55

标签: php mysql echo false-positive

我有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>

但是此代码提供了列中的所有数据,包括无值,空或空字段,并在选择菜单中显示这些数据。如何编辑此代码以隐藏或删除其他用户类型中的空值?我只需要来自“代理”类型用户的数据。

1 个答案:

答案 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