我正试图从罪犯数据库的两个表中获取数据,当我添加"and critical_name='FIDEL URBINA'"以仅获取每个罪犯的数据时,它不会返回任何信息。
这是我现在的代码和SQL语句,
$stmt = $mysqli->prepare("SELECT criminal_name, event_location FROM criminal_profile, criminal_locations
WHERE criminal_profile.criminal_id = criminal_locations.criminal_id");
$stmt->execute();
$stmt->bind_result($criminal_name, $event_location); //get data from statement
$stmt->store_result();
if($formaat=='xml'){ //XML
$xml=new SimpleXMLElement('<criminals></criminals>');
while($stmt->fetch()) // zolang er rijen zijn
{
// $criminal_name, Scriminal_pob en $event_location zijn gevuld
//voeg element criminal_pob toe met naam criminal_pob, criminal_name en event_location:
$info = $xml->addChild('criminal');
$item = $info->addChild('criminal_name',$criminal_name);
$item = $info->addChild('event_location',$event_location);
}
header('Content-type: text/xml'); //DIT WERKT NIET? cant send headers after they were sent
// coderen als JSON:
echo $xml->asXML();
}
它根据罪犯的活动地点重复罪犯,如图所示:
http://grabilla.com/05b0e-a271d885-dc45-47ad-a043-c92d832162bd.png
有人知道当我添加"AND critical_name='FIDEL URBINA'"或类似的东西时,为什么不返回数据吗?我还试过"AND crimination_name='F%'"。
这可能是一个匹配问题,您可以尝试使用like
运算符而不是=
"SELECT criminal_name, event_location FROM criminal_profile, criminal_locations
WHERE criminal_profile.criminal_id = criminal_locations.criminal_id
AND criminal_name LIKE '%FIDEL URBINA%");