Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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 如何对每条记录执行sql查询_Php_Mysql - Fatal编程技术网

Php 如何对每条记录执行sql查询

Php 如何对每条记录执行sql查询,php,mysql,Php,Mysql,我想根据前面运行的查询结果向数据库插入一些数据 // ------DEFINE ATTACHMENT-------- $sqlText['attachment']="SELECT issues.`subject`, issue_relations.issue_from_id, issue_relations.issue_to_id

我想根据前面运行的查询结果向数据库插入一些数据

// ------DEFINE ATTACHMENT--------
$sqlText['attachment']="SELECT
                            issues.`subject`,
                            issue_relations.issue_from_id,
                            issue_relations.issue_to_id,
                            issues.id,
                            attachments.filename,
                            attachments.digest,
                            attachments.id
                        FROM
                            issues
                        INNER JOIN issue_relations ON issues.id = issue_relations.issue_to_id
                        OR issues.id = issue_relations.issue_from_id
                        INNER JOIN attachments ON issue_relations.issue_to_id = attachments.container_id
                        OR issue_relations.issue_from_id = attachments.container_id
                        WHERE
                            issue_from_id = $myPage
                        OR issue_to_id = $myPage
                        GROUP BY
                            digest";
    $sqlQuery_MainMenu = mysql_db_query($db, $sqlText['attachment'], $baglanti) or die("error");
    while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu)){
// ------MAKE ATTACHMENT--------    
            $myValue=$mm_Content['id'];
        $sqlText['attach']="INSERT INTO attachments (
            container_id,
            container_type,
            filename,
            disk_filename,
            filesize,
            content_type,
            digest,
            downloads,
            author_id,
            created_on,
            description,
            disk_directory
        ) SELECT
            $value,
            container_type,
            filename,
            disk_filename,
            filesize,
            content_type,
            digest,
            downloads,
            author_id,
            created_on,
            description,
            disk_directory
        FROM
            attachments
        WHERE
            attachments.id = $myValue";
    $sqlQuery_MainMenu = mysql_db_query($db, $sqlText['attach'], $baglanti) or die("error");        
}
现在这里是交易
$mm_内容['id']帮助我找到需要添加的记录数。
并使附件部件将数据插入数据库。除非只有一条记录需要插入,否则一切正常。
但是
$mm_内容['id']大部分时间返回多条记录。在这种情况下,上面的代码只得到最新的一个。然而,当我在mysql内部运行查询时,它显示的记录比预期的多

为了解决这个问题,我尝试制作一个
$mm_内容['id']数组但它不起作用(我可能无法让它运行)。它也只带来了一个最新的记录

我想相应地运行makeattachmentpart从
$mm_Content['id'返回的记录

我的意思是,如果有四条记录,那么为每个
$mm_内容['id']运行插入for次记录

我该怎么做呢。 期待您宝贵的帮助。
关于。

您如何看待子查询

$sqlText['attach']="INSERT INTO attachments (
                container_id,
                container_type,
                filename,
                disk_filename,
                filesize,
                content_type,
                digest,
                downloads,
                author_id,
                created_on,
                description,
                disk_directory
            ) SELECT
                $value,
                container_type,
                filename,
                disk_filename,
                filesize,
                content_type,
                digest,
                downloads,
                author_id,
                created_on,
                description,
                disk_directory
            FROM
                attachments
            WHERE
                attachments.id in
    (
    SELECT   attachments.id
                            FROM
                                issues
                            INNER JOIN issue_relations ON issues.id = issue_relations.issue_to_id
                            OR issues.id = issue_relations.issue_from_id
                            INNER JOIN attachments ON issue_relations.issue_to_id = attachments.container_id
                            OR issue_relations.issue_from_id = attachments.container_id
                            WHERE
                                issue_from_id = $myPage
                            OR issue_to_id = $myPage
                            GROUP BY
                                digest
    )";
    $sqlQuery_MainMenu = mysql_db_query($db, $sqlText['attach'], $baglanti) or die("error"); 

这就是我做的,不是吗?我想是的,你需要试试看!成功了,非常感谢你的宝贵帮助。祝你过得愉快。