在我的代码中我有这个:
$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”?
答案 0 :(得分: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 *
替换为更精确的列列表,该列表将是结果集中可用的列。