-3

我遇到的问题是,当我从数据库中获取信息时,我只得到两个 raws 而不是 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 表的屏幕截图 在此处输入图像描述

4

3 回答 3

1

您正在使用“INNER”连接连接两个数据库表。如果连接表中没有对应POSTCODE的,则不会返回该行。

appregistrations要使用指定的手机号码返回所有内容,可以选择使用appreport,使用此;

SELECT * FROM appregistration
LEFT JOIN
    `appreports`
     ON `appreports`.`POSTCODE` = `appregistration`.`POSTCODE`

WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile'
于 2013-03-05T22:07:24.907 回答
0

您正在内部加入 POSTCODE,并且从该集合中您正在过滤给定的 MOBILE_NUMBER。您在这里有 4 个相同的 POSTCODES,所以我猜问题是 MOBILE_NUMBER。删除 WHERE 子句,您可能会回到 4 行。

于 2013-03-05T22:17:38.743 回答
-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'")
于 2013-03-05T22:20:39.593 回答