-3

回答が得られなくなる前に質問し、それが役立つ場合は再投稿することにしました。再投稿して何か悪いことをしていないことを願っていますか?

$total_cost_for_A = $this->admin_model->total_cost_for_A($branch, $department, $date);
$total_cost_for_B = $this->admin_model->total_cost_for_B($branch, $department, $date);

変数$total_cost_for_A および $total_cost_for_B は、モデル内の mysql 合計クエリから返された値を保持します。レコードが見つからない場合、クエリは false を返します。今、私はこの操作を実行しようとしています。

if(($total_cost_for_A === FALSE) && ($total_cost_for_B === FALSE))
{
  $data['no_record'] = 'No Record Found!';
  $this->load->view('admin/bookings', $data);
}
else
{
    $this->load->view('admin/summary', $data);
}

このテストは常に失敗し、代わりにelseステートメントを実行しますが、これは何ではありません。任意の支援をいただければ幸いです。ありがとう

ここに関数があります

    function total_cost_for_A($branch, $department, $date)
    {
        if($branch == 'Head Office' && $department == 'Summary')
        {
            $select_amount_paid = 'SELECT SUM(total_amount) total_amount FROM graphics_booking AS bk
            WHERE bk.date = "'.$date.'"';
        }

        $result = $this->db->query($select_amount_paid);

        if($result->num_rows() > 0)
        {
            return $result;
        }
        else
        {
            return FALSE;
        }
    }


    function total_cost_for_B($branch, $department, $date)
    {
        if($branch == 'Head Office' && $department == 'Summary')
        {
            $total_LF_amount = 'SELECT SUM(total_amount) total_amount FROM large_format_print
            WHERE date = "'.$date.'"';
        }

        $result = $this->db->query($total_LF_amount);

        if($result->num_rows() > 0)
        {
            return $result;
        }
        else
        {
            return FALSE;
        }
    }
4

2 に答える 2

0

いいえ、uを返す場合、uが全体を返すことができない場合は、行を返す必要があります

したがって、モデルで次のようにする必要があります。

 function total_cost_for_A($branch, $department, $date)
    {
        if($branch == 'Head Office' && $department == 'Summary')
        {
            $select_amount_paid = 'SELECT SUM(total_amount) total_amount FROM graphics_booking AS bk
            WHERE bk.date = "'.$date.'"';
        }

        $result = $this->db->query($select_amount_paid);

        if($result->num_rows() > 0)
        {
            return $result->row();     // you missed out here
        }
        else
        {
            return FALSE;
        }
    }

total_cost_for_B()についても同じです

于 2012-09-08T11:19:52.273 に答える
0

このように変更してみてください

 $select_amount_paid = 'SELECT SUM(total_amount) total_amount FROM graphics_booking AS bk
        WHERE date = '.$date;//i assume that date is an colum from graphics_booking

「bk.date」が間違っています。テーブルに where 条件がある場合は直接指定できます。また、モデル内の関数と変数が割り当てられているのと同じ名前を避けるようにしてください。異なるものとして変更してみてください。それ以外の場合は、コードいいね

于 2012-09-08T04:11:28.770 に答える