这里我再次提到了一个关于为多个文本框执行查询语句的业余问题。
我制作了以下代码,标准有4个文本框但是使用javascript,用户可以选择添加更多文本框,这将继续命名productg[4]
productg[5]
等等。我需要这个现在使用这4个,因此我没有发布javascript部分。
执行此代码时,我确实得到一个带有所有填充的textboxes值的echo的结果,但在我的数据库中只添加了1行,当我希望有4行时。
如果需要更多信息给我足够的建议,我会尽我所能提供。
<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>
$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) );
}
}
}
答案 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,它不允许重复输入。