访问mysql中的计数值

问题描述 投票:0回答:4

这是我的询问

select count(payment_id) from payment where booking_id='$booking_id';

当我在 phpmyadmin 中运行此查询时,我得到计数值 2,但我想访问该值..

$sql="select count(payment_id) from payment where booking_id='$booking_id'";
           $query = $this->db->query($sql);
           echo  $query->num_rows();
            if($query->num_rows() > 0){
  do something....
     } 

如果计数为 1,则执行某些操作;如果计数大于 1,则执行某些操作...

php mysql codeigniter activerecord
4个回答
1
投票

试试这个:

$sql="select count(payment_id) as count_value from payment where booking_id='$booking_id'";
$query = $this->db->query($sql);
foreach ($query->result() as $row)
{
   $count =  $row->count_value;
}
if($count> 0){
  do something....
} 

count('coulme name') 的意思是,它总是以单行形式返回结果


0
投票

Count() 始终返回 1 行。你需要做

$row = $query->result();

然后从那里访问 count 的值...


0
投票

这是一个模型函数,您可以在内部执行它或从函数返回计数并在控制器中执行操作。

function count_payer($booking_id) {
    $this->db->select ( 'payment_id' );
    $this->db->from ( 'payment' );
    $this->db->where ( 'booking_id', $booking_id );

    $query = $this->db->get ();

    $value = $query->num_rows ();

    if ($value == 1) {
        // do something and return
    } else {
        // do something else and return
    }
}

0
投票

如果您想要付款 ID,那么查询将是:

从付款中选择 sql_calc_found_rows payment_id,其中 booking_id='$booking_id';

选择 FOUND_ROWS();

© www.soinside.com 2019 - 2024. All rights reserved.