php有人可以告诉我,我做错了

时间:2013-03-05 22:04:07

标签: php json phpmyadmin

我得到的问题是,当我从数据库中获取信息时,我只得到两个原始而不是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表的屏幕截图 enter image description here

3 个答案:

答案 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'")