2016-09-08 66 views
-2

在我的代碼,我有這樣的:我可以只寫一個foreach嗎?

$im = $database->query("SELECT * FROM cms_messaggi_importanti WHERE messo_da = :id ORDER BY ID DESC", array("id"=>$functions->Utente("id"))); 
foreach($im as $imp){ 
    $mex_i = $database->query("SELECT * FROM cms_messaggi WHERE id = :id ORDER BY ID DESC", array("id"=>$imp['id_mex'])); 
    foreach($mex_i as $mex_imp){ 
    } 
} 

我可以寫在只有一個代碼?因爲我必須用這個方法使用很多變量。有沒有解決我的問題?例如,使用「JOIN」?

+5

是的解決方案是使用加入 – e4c5

+0

@ e4c5你可以舉個例子嗎?我不是很實用.. – JohnAnderlon

+0

有很多MySQL指南和教程,將教你如何編寫簡單的JOIN。你應該花時間去真正瞭解你在做什麼,而不是複製/粘貼別人給你的東西。 –

回答

0

你可以(也應該)做一個去查詢,然後遍歷這些結果:

$im = $database->query(" 
    SELECT * 
    FROM  cms_messaggi_importanti mi 
    LEFT JOIN cms_messaggi m ON m.id = mi.id_mex 
    WHERE  messo_da = :id 
    ORDER BY mi.ID DESC, 
       m.ID DESC", 
     array("id"=>$functions->Utente("id"))); 

foreach($im as $imp){ 
    //... 
} 

你可能會需要一個更精確的列清單,以取代SELECT *,這將是結果集中可用的列。

相關問題