循环/foreach时php插入sql问题

循环/foreach时php插入sql问题,php,mysql,sql,Php,Mysql,Sql,下面的代码来自表之间的数据,但由于某些原因,只有一个值插入到数据库中 <?php DEFINE("DB_SERVER", "localhost"); //LOCALHOST DEFINE("DB_USER", "user"); DEFINE("DB_PASS", "pass"); DEFINE("DB_NAME", "table"); $connect = mysql_connect(DB_SERVER,DB_USER,DB_PASS) or d

下面的代码来自表之间的数据,但由于某些原因,只有一个值插入到数据库中

<?php

    DEFINE("DB_SERVER", "localhost"); //LOCALHOST
    DEFINE("DB_USER", "user");
    DEFINE("DB_PASS", "pass");
    DEFINE("DB_NAME", "table");

    $connect = mysql_connect(DB_SERVER,DB_USER,DB_PASS) or die("connect issue". ' ' .  mysql_error());
    mysql_query('SET NAMES utf8'); 

    $db = mysql_select_db(DB_NAME,$connect) or die("connect issue". ' ' . mysql_error());
    mysql_query('SET NAMES utf8');

    if (!$db){
        echo "connect issue";
    }

    $sql = "SELECT id, column2 FROM tablea";
    $result = mysql_query($sql) or die(mysql_error());

    $set = date("Y-m-d H:i:s", time());

    while ($row = mysql_fetch_array($result)) {

        $id = $row['id'];
        $list = $row['column2'];

        echo "user_id: $id";
        echo "<br/><br/>";

        $makes = explode (";", $row['column2']);

        $i = 0;
        foreach ($makes as $make) {

            $sql2 = "SELECT url FROM tableb WHERE id = '$make'";
            $result2 = mysql_query($sql2) or die(mysql_error());

            while ($row2  = mysql_fetch_array($result2)) {

                echo $row2[0];
                echo $row2[1];
                echo $row2[2];
                echo $row2[3];
                echo $row2[4];
                echo $row2[5];
                echo $row2[6];
                echo $row2[7];

                $m1 = $row2[0];
                $m2 = $row2[1];
                $m3 = $row2[2];
                $m4 = $row2[3];
                $m5 = $row2[4];
                $m6 = $row2[5];
                $m7 = $row2[6];
                $m8 = $row2[7];

                echo "<br/>";

            }

            if (++$i == 8) break;
        }

        $sql3 = "INSERT INTO tablec (partner_id, make1, make2, make3, make4, make5, make6, make7, make8, saved) VALUES ('$id', '$m1', '$m2', '$m3', '$m4', '$m5', '$m6', '$m7', '$m8', '$set')";
        $result3 = mysql_query($sql3) or die(mysql_error());

        var_dump($sql3);
        var_dump($result3);

        if($result3) {

            echo "done";

        }

        else {

            echo "fail";

        }       

        echo "<pre>";
            var_dump($row);
        echo "</pre>";


        echo "<hr/>";

    }

?>

您只能从
表B
中获取一个字段:

SELECT url, field1, field2, etc...
如果需要更多字段,则需要指定它们:


我不明白你的问题。你有SQL错误吗?你能解释更多吗?插入了哪一个变量,哪一个没有,你是如何检查的,到目前为止你尝试了什么来解决这个问题?那也是,但这取决于OP来解决。。。不管怎样,像他们正在尝试的那样运行嵌套查询是非常低效的。
SELECT url, field1, field2, etc...