0
나는 입력란에 체크 박스가있는 폼이있다. 사용자는 무언가를 선택하거나 입력 할 수 있으며 쿼리가 작성되고 있습니다. 이제 사용자가 하나의 체크 박스 만 선택하면 쿼리가 완벽하게 작동하지만 2 개의 체크 박스를 선택하면 그 대가로 0이됩니다. 이 쿼리가 반환하는 것입니다 :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이 데이터베이스에 있다는 것을 안다. (내가 따로 따로 선택하면 작동한다.)
감사
2. 내 대답이 문제에 도움이나요 인 경우
event_id
모두 1 개 반환 뭔가 있다면AND
은 뭔가를 반환? –예,하지만 그랬습니까? 그들 사이의 차이점은 무엇입니까? – PDOProgrammer
작은 답변으로 내 대답을 편집했습니다. 도움이되었다고 생각한다면, 그것을 수락 한 것으로 표시하는 것을 잊지 마십시오. –