Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我能用一张纸写两张纸吗?_Php_Mysql - Fatal编程技术网

Php 我能用一张纸写两张纸吗?

Php 我能用一张纸写两张纸吗?,php,mysql,Php,Mysql,在我的代码中,我有: $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 WHE

在我的代码中,我有:

$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”

您可以(也应该)一次性完成查询,然后迭代这些结果:

$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*
替换为更精确的列列表,这将是结果集中可用的列。

是的,解决方案是使用join@e4c5你能给我举个例子吗?我不是很实用。有很多MySQL指南和教程可以教你如何编写一个简单的连接。你应该花时间真正了解自己在做什么,而不是仅仅复制/粘贴别人给你的东西。复制: