私は何か間違っているのか、これがMySQLでどのように処理されているのかちょっとした疑問に思っています。ここでセットアップがあります:(私はどこにもこの正確なトピックを見つけることができないよう)返されたJOIN配列にMySQLが重複した情報を返すのはなぜですか?
私は2つのテーブルためとメニューを持っています。メニュー
を有し 'id
'item
' 三の価格、(アイテム用)( 'prc1
'prc2
' prc3
')それぞれに行。
menu +----+----------+------+------+------+
|'id'| 'item' |'prc1'|'prc2'|'prc3'|
+----+----------+------+------+------+
| 1 | 'tshirt' | 3.00 | 4.50 | 4.00 |
| 2 | 'socks' | 1.00 | 2.50 | 2.00 |
+----+----------+------+------+------+
順序も注文メニュー( 'i_id
')、及びIは、PHP(' prc_id
')の後半の価格をフィルタリングするために使用する整数照合するアイテムIDを有しています。
$result = mysql_query($query)
while($row = mysql_fetch_array($result))
{
print_r($row);
}
:私は、私はその後、必ずすべてが出てパンさせるために最初に戻って結果を取得し、 "SELECT order.prc_id, menu.item, menu.prc1, menu.prc2, menu.prc3
FROM order
LEFT JOIN menu
ON order.i_id = menu.id"
項目に注文を一致させるためにJOINを使用
order +------+--------+
|'i_id'|'prc_id'|
+--------+------+
| 1 | 1 | # i_id matches id - tshirt and informs to use prc1
| 2 | 3 | # i_id matchis id - socks and uses prc3
+--------+------+
は、私は配列を印刷しました
これは私が戻ってくる配列です(最初のテストでは明らかにダミー情報)。
Array
(
[0] => 1 [prc_id] => 1 #the value (1) for 'prc_id' is given twice
[1] => tshirt [item] => tshirt #the value (tshirt) for 'item' is given twice
[2] => 3.00 [prc1] => 3.00 #the value (3.00) for 'prc1' is given twice
[3] => 4.50 [prc2] => 4.50 #etc
[4] => 4.00 [prc3] => 4.00
[0] => 3 [prc_id] => 3
[1] => socks [item] => socks
[2] => 1.00 [prc1] => 1.00
[3] => 2.50 [prc2] => 2.50
[4] => 2.00 [prc3] => 2.00
)
だから私の質問(最後に、右? xD)...重複したデータがアレイレスポンスに返送されるのはなぜですか?
私は間違ったことをしましたか?私は何か見落としていますか?
これは大きな問題ではなく、私の最終結果に影響しません。できるだけ正確にしたいと思います。
ありがとうございます。 :)
ハム、ありがとう。 'print_r()'が問題になるかもしれないということも私の頭の中ではわかりませんでした。 私は確かにあることが正当化されたことをコマンドラインから実行しました。解釈がとても奇妙なのは単なる奇妙なことです。再度、感謝します。 :) – Squish