如果我在 Workbench 中執行以下查詢,我會得到預期的行數——5。
SELECT id, first_name, last_name, minutes, price, date, trans_id, user_id FROM user_orders WHERE user_id = 1234567 AND refunded = 1;
但是,如果我user_id在我的網路應用程式的搜索欄位中輸入相同的內容,它會回傳所有訂單,無論是否已退款,但仍將退款總數列為 5。
$searchRefunds = $this->db->query("SELECT id, first_name, last_name, minutes, price, date, trans_id, user_id FROM user_orders WHERE refunded = 1 AND id = '$searchTerm' OR trans_id = '$searchTerm' OR user_id = '$searchTerm' ORDER BY id desc;");
$total_records=$this->db->query("SELECT count(user_id) as count FROM user_orders WHERE refunded = 1 AND user_id = '$searchTerm';")->result();
$total_records = isset($total_records[0])?$total_records[0]->count:0;
任何幫助表示贊賞。
uj5u.com熱心網友回復:
因為您需要像這樣在括號內添加所有 or 子句。
$searchRefunds = $this->db->query("SELECT id, first_name, last_name, minutes, price, date, trans_id, user_id FROM user_orders WHERE refunded = 1 AND (id = '$searchTerm' OR trans_id = '$searchTerm' OR user_id = '$searchTerm' ) ORDER BY id desc;");
$total_records=$this->db->query("SELECT count(user_id) as count FROM user_orders WHERE refunded = 1 AND user_id = '$searchTerm';")->result();
在您自己的實作中,您要么需要使用特定 id 退款的行,要么具有特定的用戶 id 或特定的交易 id。
所以查詢回傳了所有與用戶相關的行,不管它們是否被退款。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406875.html
標籤:
