-3

私が得た問題は、データベースから情報を取得すると、 4 ではなく 2 つの raw しか得られないことです。問題が見つからないので、誰かが私を助けてくれますか

これがコードです

$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」結合を使用して2 つのデータベース テーブルを結合しています。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 でフィルタリングしています。ここには同じ POSTCODES が 4 つあるので、問題は 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 に答える