php mysql从用户输入动态选择查询
我有一个带有复选框和输入字段的表单。用户可以选择或输入一些内容,然后生成查询。现在,当用户只选择一个复选框时,查询工作正常,但当选择两个复选框时,返回的计数为零。 这是查询返回的结果:php mysql从用户输入动态选择查询,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我有一个带有复选框和输入字段的表单。用户可以选择或输入一些内容,然后生成查询。现在,当用户只选择一个复选框时,查询工作正常,但当选择两个复选框时,返回的计数为零。 这是查询返回的结果: 选择nbs\u contact\u events.contact\u id、nbs\u contacts.nbs\u contact\u id、nbs\u contacts.nbs\u contact\u sur 来自nbs_联系人 在nbs\U联系人\U事件上左键加入nbs\U联系人\U事件。联系人\U id=
选择nbs\u contact\u events.contact\u id、nbs\u contacts.nbs\u contact\u id、nbs\u contacts.nbs\u contact\u sur
来自nbs_联系人
在nbs\U联系人\U事件上左键加入nbs\U联系人\U事件。联系人\U id=nbs\U联系人。nbs\U联系人\U id
其中,nbs_contact_events.event_id=1
和nbs_联系人_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;
}
查询有什么问题,为什么不返回任何内容?我知道ID1和ID21在数据库中(如果我分别选择它们,它会工作)
谢谢应该是
或
而不是和
。
和
仅在事件id
同时为1和
2时才会返回某些内容<如果event\u id
为1或event\u id为2,则code>或返回某些内容
选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21
它应该是或
,而不是和
。
和
仅在事件id
同时为1和
2时才会返回某些内容<如果event\u id
为1或event\u id为2,则code>或返回某些内容
选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21
它应该是或
,而不是和
。
和
仅在事件id
同时为1和
2时才会返回某些内容<如果event\u id
为1或event\u id为2,则code>或返回某些内容
选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21
它应该是或
,而不是和
。
和
仅在事件id
同时为1和
2时才会返回某些内容<如果event\u id
为1或event\u id为2,则code>或返回某些内容
选择nbs\u contact\u events.contact\u id,
nbs_联系人。nbs_联系人id,
nbs_contacts.nbs_contacts_sur
来自nbs_联系人
左加入nbs_联系人_活动
在nbs\u联系人\u事件上。联系人\u id=nbs\u联系人。nbs\u联系人\u id
其中,nbs_contact_events.event_id=1
或nbs\u联系人\u事件。事件\u id=21
使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。使用没有占位符的准备语句没有意义。