douchenbiao0916 2016-09-08 14:43
浏览 58
已采纳

我可以只用一个写两个foreach吗?

In my code I have this:

$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){ 
     }
}

Can I write this code in only one? Because I have to use a lot of variable with this method. Is there a solution to my problem? For example, using "JOIN"?

  • 写回答

1条回答 默认 最新

  • doujingxi3356 2016-09-10 20:24
    关注

    You can (and should) do your query in one go, and then iterate over those results:

    $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){
        //...
    }
    

    You will probably need to replace the SELECT * by a more precise column list, which will be the columns available in the result set.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺