简体   繁体   English

PHP在循环/ foreach中插入sql问题

[英]php insert sql issue while loop / foreach

The following code from my data between tables, but for some reason only one value is inserted to database 以下代码来自表之间的数据,但由于某种原因,仅一个值插入到数据库中

<?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/>";

    }

?>

var_dump sql: var_dump sql:

string(186) "INSERT INTO tablec (partner_id, make1, make2, make3, make4, make5, make6, make7, make8, saved) VALUES ('75', 'opel', '', '', '', '', '', '', '', '2014-02-06 18:20:14')"

it works fine, but the only 1 variable inserted the table "$row2[0];" 它工作正常,但是唯一的1个变量插入了表“ $ row2 [0];”。

whats the problem? 有什么问题? thank you for your help! 谢谢您的帮助!

You only ever fetch one field from your tableb : 您只能从tableb获取一个字段:

        $sql2 = "SELECT url FROM tableb WHERE id = '$make'";
                        ^^^^---- here

If you want more fields, you need to specify them: 如果需要更多字段,则需要指定它们:

SELECT url, field1, field2, etc...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM