2013-03-05 112 views
-3

我得到的问题是,当我从数据库中获取信息,我只得到两个原始不是4。有人可以帮助我,因为我找不到任何问题PHP有人可以告诉我我做错了请

这是代码

$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

+0

我不清楚什么是坏的 - 问题到底是什么,你认为是什么代码负责它? – 2013-03-05 22:05:57

+0

请更具体地说明什么是错的。我们不知道你的输出应该是什么,所以我们不能告诉什么不起作用 – BOMEz 2013-03-05 22:07:01

+1

你可能想阅读SQL注入。 – jeroen 2013-03-05 22:08:39

回答

1

你即将加入截图数据库表使用'INNER'连接。如果连接表中没有对应的POSTCODE,则不会返回该行。

要与appreport与指定的移动号码返回所有appregistrations任选,使用此;

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

WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile' 
+0

那么什么是解决方案,你能帮助plz – ben 2013-03-05 22:10:17

+0

基本上,你的查询做它应该做的,找到'appreports'与*匹配*'appregistration'具有指定的电话号码?如果没有匹配的应用程序注册(基于邮编),则不应该返回,您不能只连接一个'随机'记录 – thaJeztah 2013-03-05 22:13:03

+0

它查看给定移动号码的应用程序注册表,并在appreports表中查找匹配的邮编。但问题是它没有显示4条原始信息,它只显示2 – ben 2013-03-05 22:18:48

0

你是内部加入POSTCODE,并从那个设置你是过滤给定的MOBILE_NUMBER。你在这里有4个相同的POSTCODES,所以我猜这个问题是MOBILE_NUMBER。删除WHERE子句,你可能会回到4行。

+0

但是这并不能消除脚本的目的?通过电话号码过滤行? – thaJeztah 2013-03-05 22:18:37

+0

我正在使用号码查找某人的邮编,然后我使用邮政编码并列出匹配的邮政编码。其中应显示4个匹配相同邮政编码的原料 – ben 2013-03-05 22:22:30

+0

您是否100%确定该邮编匹配?我已经给你一个说不然的问题。其中一个表中的POSTCODE字段可能包含在PhpMyAdmin中不可见的前导/尾随空格,但无论如何都存在。 – thaJeztah 2013-03-05 22:40:11

-1

如果你想返回与手机号码的所有行是appreports表$移动使用这样的:如果你想返回与手机号码的所有行

SELECT `INCIDENT_ID`, `INVESTIGATION`, `TYPE_OF_INCIDENT`, `DESCRIPTION` 
FROM `appreports`      
WHERE `appregistration`.`MOBILE_NUMBER` = '$mobile'" 

在appreports表$移动和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'") 
+0

我使用了第二个线索,仍然只显示两个原始不是4 – ben 2013-03-05 22:26:41

+0

对不起,我在第二个查询中修正了错误。这现在必须工作。你可以阅读这个http://en.kioskea.net/faq/26824-mysql-how-to-choose-inner-or-outer-joins – kansei 2013-03-05 22:37:57

+0

谢谢你,但它的显示错误,警告:mysql_fetch_assoc()期望参数1到是资源,在第19行给出的布尔值null – ben 2013-03-05 22:41:44

相关问题