【问题标题】:syntax error when i include use "distinct" [closed]当我包含使用“distinct”时出现语法错误[关闭]
【发布时间】:2020-03-02 06:10:20
【问题描述】:

我尝试将此代码包含到我的程序中,但仪表板中显示的数字与数据库(mysql)不匹配在我的仪表板中应该是“4”你可以看到我的图片。这是我的代码:

<?php echo $this->db->query("SELECT count( distinct destination_name_) FROM mobil")->num_rows(); ?>

我在表名中的列:destination_name 我的数据库名称:mobil

请帮帮我, 之前谢谢你

【问题讨论】:

  • 而不是代码截图,而是将代码置于问题中。
  • 你应该打印结果而不是 num_rows
  • num_rows 的任何计数查询将始终为 1。
  • 查看答案
  • 获取 num_rows 属性将始终为 1。因为您从查询中返回 1 行。您需要获取数据而不是检查行数。

标签: php mysql codeigniter


【解决方案1】:

试试:

<?php echo count($this->db->query("SELECT DISTINCT destination_name as count FROM mobil")->result_array()); ?>

【讨论】:

  • 这不是一个好的解决方案。因为他们只想要行数,所以使用 SQL 的 count() 而不是获取所有行只是为了使用 PHP 在结果集上运行 count()。
  • Haloo IIIya,这是你帮助我的两次,你的代码工作!非常感谢
【解决方案2】:

试试

<?php 
    $query = $this->db->query("SELECT count( distinct destination_name) as cnt FROM mobil");
    $result = $query->row();
    $count = $result->cnt;
    echo $count;
?>

【讨论】:

    【解决方案3】:

    我在这里发现了一个语法错误。

    destination_name_
    

    使用此代码

    <?php echo $this->db->query("SELECT count( distinct destination_name) FROM mobil")->num_rows(); ?>
    

    【讨论】:

      【解决方案4】:

      您必须为destination_name 使用正确的列名,而不是destination_name_

      准确的查询是

      $this->db->query("SELECT count( distinct destination_name) as cnt FROM mobil");
      

      【讨论】:

      • 感谢您的回答@Qirel 和 kamran geE 但不起作用
      【解决方案5】:

      查询已经返回了行数,所以你只需要回显它:

      <?php $q = $this->db->query("SELECT count(distinct destination_name) as dst FROM mobil")->row()->dst; echo !empty($q) ? $q : '0'; ?>
      

      【讨论】:

      • 很棒的代码,它的工作!谢谢@Hasta Dhana
      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2017-02-27
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多