[英]Inserting form values in multiple row using php empty fields
我需要一點幫助。 我有以下代碼。 我希望當所有字段都未完成時,不要在數據庫中引入空字段。 只需上傳完成的文件即可。
for($i = 0; $i <count($_POST)+3; $i++){
mysql_query("INSERT INTO `predare`(`id_factura`,`id_student`, `id_produs`, `cantitate`)
VALUES('".$_POST['id_factura'][$i]."','".$_POST['id_student'][$i]."', '".$_POST['id_produs'][$i]."', '".$_POST['cantitate'][$i]."');");
}
<input class="input-1" name="cantitate[]" id="cantitate" value="">
<input class="input-1" name="id_factura[]" id="id_factura" value="">
<input class="input-1" name="id_student[]" id="id_student" value="">
<input class="input-1" name="id_produs[]" id="id_produs" value="">
這是我建議這樣做的方式。 首先初始化您的SQL字符串和分隔符(用於通過一個查詢插入多個記錄。)
$sql = "INSERT INTO `predare` (`id_factura`,`id_student`, `id_produs`, `cantitate`) VALUES ";
$separator = '';
然后在提交的行上循環,如果行具有所有四個值,則追加到SQL字符串。
for ($i = 0; $i < count($_POST['cantitate']); $i++) {
$values = array();
foreach (array('id_factura', 'id_student', 'id_produs', 'cantitate') as $column) {
// only add values to the $values array if something has been entered
// (empty fields will be present as '', which evaluates to false)
if ($_POST[$column][$i]) $values[] = $_POST[$column][$i];
}
if (count($values) == 4) { // only add the values to the SQL if all fields are present
$sql .= "$separator ('" . implode("','", $values) . "')";
$separator = ',';
}
}
然后,您可以執行SQL語句一次插入所有完整記錄。
如果要包括不完整(但不為空)的行,則可以使用if ($values) {...
代替if (count($values) == 4) {...
以這種方式設置它的好處是,將代碼轉換為使用帶有預准備語句的更好的數據庫擴展(例如PDO)會更容易,而不是像這樣將值串聯到SQL中。
您需要遍歷$ _POST ['id_factura']數組,並且需要在插入語句之前檢查值,如下所示:
for($i = 0; $i <count($_POST['id_factura']); $i++){
if(isset($_POST['id_factura'][$i]) && isset($_POST['id_student'][$i]) && isset($_POST['id_produs'][$i]) && isset($_POST['cantitate'][$i])){
mysql_query("INSERT INTO `predare`(`id_factura`,`id_student`, `id_produs`, `cantitate`)
VALUES('".$_POST['id_factura'][$i]."','".$_POST['id_student'][$i]."', '".$_POST['id_produs'][$i]."', '".$_POST['cantitate'][$i]."');");
}
}
或者您可以檢查整數值是否大於0 ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.