我有两个插入单个表的文本字段
HTML
<table width="200" border="0">
<tr>
<td><label for="textfield">Van Number:</label></td>
<td><input type="text" name="van[]" id="textfield" /></td>
</tr>
<tr>
<td><label for="textfield2">Van Number:</label></td>
<td><input type="text" name="van[]" id="textfield2" /></td>
</tr>
</table>
这是我对mysql的插入函数
MYSQL PHP
foreach ($_POST['van'] as $van) {
mysql_select_db($database_connect, $connect);
$sql = ("INSERT INTO tbl_van (van_number, tbl_delivery_details_id_delivery_details) VALUES('$van', '$id_delivery')");
if (!mysql_query($sql,$connect)){
die('Error: '. mysql_error());
}
}
}
?>
我制作了2个文本字段,因为通常需要插入2个van编号,但有时会有3个和4个van编号。我有3个van编号的问题,因为它会将空字段插入数据库,下次再添加3时,对于其他文本字段,它将再次为空,而第三个不会被插入,因为已经存在空白数据数据库,它不会添加相同的空白值,因为它不再是唯一的。我希望能够插入数据并忽略空白字段,并仅插入包含数据且不为空白的文本字段。
答案 0 :(得分:0)
mysql_select_db($database_connect, $connect); // take this outside the loop
foreach ($_POST['van'] as $van) {
$van = trim($van);
if ($van != '') {
$sql = ("INSERT INTO tbl_van (van_number, tbl_delivery_details_id_delivery_details) VALUES('$van', '$id_delivery')");
if (!mysql_query($sql,$connect)){
die('Error: '. mysql_error());
}
}
}
答案 1 :(得分:0)
首先,请查看PDO和SQL注入(参数绑定),因为这是将用户提供的数据插入数据库的最坏方法。
其次,阅读数据库规范化。你在这里遇到的问题是由于数据库设计缺陷造成的。
创建一个带有单一货车数据的货车表,并为与该货车相关的所有数字创建一个货车号码表。
答案 2 :(得分:0)
输入文本不同的名称:
<input type="text" name="name1" id="textfield2" />
<input type="text" name="name2" id="textfield2" />
然后您可以根据需要使用PHP代码。
答案 3 :(得分:0)
这样的事情怎么样?没有测试它只是检查周围:)不要忘记做适当的值检查和逃避.. :))
$values = array();
foreach($_POST['van'] as $van) {
if( ! trim($van)) continue;
$values[] = '(' . $number . ', ' . $id_delivery . ')';
}
if($values) {
mysql_select_db($database_connect, $connect);
$query = 'INSERT INTO tbl_van (van_number, tbl_delivery_details_id_delivery_details) VALUES ' . implode(', ', $values);
mysql_query($query, $connect);
}