计数行除以计数行

时间:2019-05-14 07:07:19

标签: php mysql codeigniter

我在CI中的MySQL语法有问题,这是我的表

id_data | nama_depan | nama_belakang | gender | luas_lantai | jenis_lantai 
| status

我已经尝试过以下代码并显示错误

  

消息:无法将类CI_DB_mysqli_result的对象转换为   诠释

public function getStatus1($status){ 
$str = "SELECT count(status) 
        FROM data_latih WHERE status = 1 "; 

$str1 = "SELECT count(status) 
         FROM data_latih ";

    $query = $this->db->query($str); 
    $query1 = $this->db->query($str1);

    return $query / $query1;
}

预期输出是计数状态的十进制数= 1除以所有行的计数

编辑:找到了答案,非常感谢我是编程方面的新手,请忍受我:)))

2 个答案:

答案 0 :(得分:2)

您实际上可以通过一个查询来处理此问题:

SELECT
    SUM(status = 1) / COUNT(status) AS result
FROM data_latih;

关于您的PHP代码,我建议为各种计数分配别名,然后访问这些别名。

$sql = "SELECT SUM(status = 1) / COUNT(status) AS result FROM data_latih";
$result = $this->db->query($sql);
if ($row = $result->fetch_array()) {
    echo $row['result'];
}

答案 1 :(得分:2)

问题是您试图将对象除以没有任何意义的对象,请尝试使用这种CI方式,

public function getStatus1($status){ 

$this->db->count_all_results('data_latih '); 
$this->db->where('status ', '1');
$this->db->from('data_latih ');
$result1 = (float)$this->db->count_all_results();

$result2 = (float)$this->db->count_all('data_latih'); 

    return $result1 / $result2 ;
}