通过查询结果问题在db中插入多个文本框

时间:2014-03-06 12:45:41

标签: php sql insert textbox

这里我再次提到了一个关于为多个文本框执行查询语句的业余问题。

我制作了以下代码,标准有4个文本框但是使用javascript,用户可以选择添加更多文本框,这将继续命名productg[4] productg[5]等等。我需要这个现在使用这4个,因此我没有发布javascript部分。

执行此代码时,我确实得到一个带有所有填充的textboxes值的echo的结果,但在我的数据库中只添加了1行,当我希望有4行时。

如果需要更多信息给我足够的建议,我会尽我所能提供。

HTML

<div id="productgroepen">
    <div>
        <label>Product groep 1</label>
        <input type="text" name="productg[1]" />
    </div>
    <div>
        <label>Product groep 2</label>
        <input type="text" name="productg[2]" />
    </div>
    <div>
        <label>Product groep 3</label>
        <input type="text" name="productg[3]" />
    </div>
    <div>
        <label>Product groep 4</label>
        <input type="text" name="productg[4]" />
    </div>
</div>

PHP

    $total = 4;
    for($i=1; $i<=$total; $i++)
    {
        if(isset($_POST['productg']) && isset($_POST['productg'][$i]))
        {
            $product = $_POST['productg'][$i];
            $productquery = mysqli_query($conn, "INSERT INTO productgroepen SET id = 'LAST_INSERT_ID()' , levid ='$hidresult' , productgroep = '$product'");
            if($productquery === false)
            {
                throw new Exception('Query failed: ' . mysqli_error($conn) );
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

试试这个:

$total = 4;
for($i=1; $i<=$total; $i++){
    if(isset($_POST['productg']) && isset($_POST['productg'][$i])){
        //still needs some check whether $_POST['productg'][$i] contains an acceptable value
        $result = mysqli_query("INSERT INTO productgroepen SET levid='".mysqli_real_escape_string($conn, $hidresult)."', productgroep='".mysqli_real_escape_string($conn, $_POST['productg'][$i])."'");
        if($result === false)
            throw new Exception('Query failed: '.mysqli_error($conn) );
    }
}

答案 1 :(得分:0)

Wimpie提供的答案已经解决了我的问题,并且让我对sql错误捕获有了更深入的了解,所以我用答案更新了我的问题,如果有人对javascript方面感兴趣添加更多文本框,我会很高兴发布它。

手头的问题是我在我的数据库中创建了levid primary,它不允许重复输入。