我得到的问题是,当我从数据库中获取信息时,我只得到两个原始而不是4。有人可以帮助我,因为我找不到任何问题
这是代码
$sql = mysql_query("SELECT INCIDENT_ID FROM appreports WHERE POSTCODE = 'CF14' ");
while($row=mysql_fetch_assoc($sql))
{
$output[] = $row;
}
print(json_encode($output));
mysql_close();
这是数据库中appreports表的屏幕截图
答案 0 :(得分:1)
您正在使用“INNER”加入加入两个数据库表。如果连接表中没有对应的POSTCODE
,则不会返回此行。
要使用指定的手机号码返回所有appregistrations
,可选并使用appreport
,请使用此功能;
SELECT * FROM appregistration
LEFT JOIN
`appreports`
ON `appreports`.`POSTCODE` = `appregistration`.`POSTCODE`
WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile'
答案 1 :(得分:0)
您正在加入POSTCODE并从该集合中过滤给定的MOBILE_NUMBER。你在这里有4个相同的POSTCODES,所以我猜这个问题是MOBILE_NUMBER。删除WHERE子句,您可能会回到4行。
答案 2 :(得分:-1)
如果你想要返回所有带有手机号码的行在appreports表上是$ mobile,请使用:
SELECT `INCIDENT_ID`, `INVESTIGATION`, `TYPE_OF_INCIDENT`, `DESCRIPTION`
FROM `appreports`
WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile'"
如果你想要返回所有带有手机号码的行在appreports表上是$ mobile,而appregistration表中的信息如果存在则使用:
SELECT `INCIDENT_ID`, `INVESTIGATION`, `TYPE_OF_INCIDENT`, `DESCRIPTION`
FROM `appreports`
FULL OUTER JOIN `appregistration`
ON `appreports`.`POSTCODE` = `appregistration`.`POSTCODE`
WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile'")