0
我有一個帶有複選框和輸入字段的表單。用戶可以選擇或輸入一些內容,並且正在構建查詢。現在,當用戶只選擇一個複選框時,查詢完美無缺,但是當選擇2個複選框時,我會得到一個零計數。 這就是查詢返回:php mysql從用戶輸入動態選擇查詢
SELECT nbs_contact_events.contact_id, nbs_contacts.nbs_contact_id, nbs_contacts.nbs_contact_sur
FROM nbs_contacts
LEFT JOIN nbs_contact_events ON nbs_contact_events.contact_id = nbs_contacts.nbs_contact_id
WHERE nbs_contact_events.event_id = 1
AND nbs_contact_events.event_id = 21
返回的計數:0
作爲遵循作出該選擇的PHP(PDO)代碼:
$this->pdo = $this->connectMySql();
$query = "SELECT nbs_contact_events.contact_id, nbs_contacts.nbs_contact_id, nbs_contacts.nbs_contact_sur
FROM
nbs_contacts
LEFT JOIN
nbs_contact_events
ON
nbs_contact_events.contact_id = nbs_contacts.nbs_contact_id";
if(isset($eventlist) || isset($nbslist) || isset($nbs_relativeto)){
$query .= " WHERE ";
if(isset($eventlist)){
$source = array_filter($eventlist);
$conditions = array();
foreach($source as $field => $value){
$conditions[] = "nbs_contact_events.event_id = " . mysql_real_escape_string($value);
//$conditions[] = "event_id = :event_id";
}
$where = implode(" AND ", $conditions);
$query .= $where;
}
}
$stmt = $this->pdo->prepare($query);
print_r($query);
if(!$stmt->execute($conditions)){
return false;
}
$nart = $stmt->rowCount();
echo "returned count: " . $nart;
if ($nart == 0) {
return false;
}
有什麼不對查詢,它爲什麼不返回任何東西?我知道ID 1和21在數據庫中(如果我單獨選擇它們,它會起作用)。
感謝
難道我的回答幫助你的問題嗎? –
是的,但爲什麼是或者而不是?他們有什麼區別? – PDOProgrammer
我編輯了一個小解釋我的答案。如果您覺得它有幫助,不要忘記將其標記爲已接受。 –