簡體   English   中英

PHP在循環/ foreach中插入sql問題

[英]php insert sql issue while loop / foreach

以下代碼來自表之間的數據,但由於某種原因,僅一個值插入到數據庫中

<?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:

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')"

它工作正常,但是唯一的1個變量插入了表“ $ row2 [0];”。

有什么問題? 謝謝您的幫助!

您只能從tableb獲取一個字段:

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

如果需要更多字段,則需要指定它們:

SELECT url, field1, field2, etc...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM