访问mysql中的计数值

时间:2014-05-27 04:45:31

标签: mysql codeigniter

这是我的查询

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....
     } 

如果count为1则执行某些操作,如果count大于1,则执行某些操作...

4 个答案:

答案 0 :(得分: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')表示,它总是将结果作为单行返回

答案 1 :(得分:0)

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

$row = $query->result();

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

答案 2 :(得分: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
    }
}

答案 3 :(得分:0)

如果您需要付款ID,则查询将为:

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

选择FOUND_ROWS();