2012-10-13 171 views
0

我有一個完整的查詢,但是,我不知道如何在PHP中讀取結果。MySQL - 查詢同一個表兩次

SELECT * FROM [...] 
LEFT JOIN media ON m_media_id=r_release_media_id 
[...] 
LEFT JOIN media AS episode_media ON episode_media.m_media_id=ms_media_id 

這是事情:我打電話給「媒體」表兩次,如你所見。它讀出很好,作爲一個SQL查詢,但我得到media.m_media_id和episode_media.m_media_id - 我怎麼得到這些在PHP?

我打電話給這樣的查詢,但是$ record->部分不起作用,因爲點弄亂了它。我如何正確地做到這一點?

$result = mysql_query($sql); 
while ($record = mysql_fetch_object($result)) { 
    $1 = $record->media.m_media_id 
    $2 = $record->episode_media.m_media_id 
} 

我已經搜索找到答案,但我只能找到MySQL查詢,而不是PHP部分。謝謝。

+3

不要''選擇在連接查詢*。始終關注您需要的列併爲其添加別名'SELECT media.m_media_id AS media_id,episode_media.m_media_id AS episode_media_id'。在PHP中,訪問別名的列爲'$ record-> episode_media_id' –

+0

...另外mysql庫已被棄用,使用PDO或mysqli –

+0

爲了您的信息,您不能使用'$ 1'和'$ 2'(一個數值直接跟在'$'後面)([here](http://www.php.net/manual/en/language.variables.basics.php)是解釋變量如何命名的手冊)。 –

回答

3

您應該使用別名。

我建議查詢是這樣的:

SELECT media.m_media_id as name1, episode_media.m_media_id as name2.... 

那麼你應該可以叫他們爲:

$name1 = $record->name1 
$name2 = $record->name2 
+0

感謝您的幫助,爲我節省了大量時間。 :) –