2013-03-05 85 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

相關問題