[英]How to enter multiple rows in mySQL from form data where one field changes
我有一個表格,詢問有關工作的一些基本問題,然后要求進入的人員列出當時與他們在一起的所有同事。 我要為在場的所有同事在數據庫中輸入一行-因此所有其他細節都保持不變,除了他們的work_id(這是該人的標識符)之外。 我的下面的代碼似乎將1行提交到數據庫,而workID字段為空
<?php
require_once('includes/dbconnect.php');
$varWorkID = $_POST['workid'];
$varDate = $_POST['date'];
$varType = $_POST['type'];
$varSuper = $_POST['supervisor'];
$varReference = $_POST['reference'];
//Remove last part of array as extra 1 sent through by form
$workID = array_pop($varWorkID);
for ($i=0; $i < count($workID); $i++ )
{
mysqli_query($conn,"INSERT INTO searches (workid,date,type,super,reference) VALUES('".$workID."','".$varDate."','".$varType."','".$varSuper."','".$varReference."')");
}
echo "Completed";
我想我已經很接近了,但是我只需要獲取工作ID即可為在場的每位員工填寫每個工作ID。
任何幫助表示贊賞
這里的問題是您正在調用$workID = array_pop($varWorkID);
在進入for ($i=0; $i < count($workID); $i++ )
循環之前,PHP解釋器認為您只想遍歷該元素的長度。 您真正想要做的是在循環內從數組中彈出一個元素。
<?php
require_once('includes/dbconnect.php');
$varWorkID = $_POST['workid'];
$varDate = $_POST['date'];
$varType = $_POST['type'];
$varSuper = $_POST['supervisor'];
$varReference = $_POST['reference'];
// iterate over the count of the whole array $varWorkID = $_POST['workid']
for ($i=0; $i < count($varWorkID); $i++ )
{
// now pop off the array inside the loop
//Remove last part of array as extra 1 sent through by form
$workID = array_pop($varWorkID);
mysqli_query($conn,"INSERT INTO searches (workid,date,type,super,reference) VALUES('".$workID."','".$varDate."','".$varType."','".$varSuper."','".$varReference."')");
}
echo "Completed";
現在我認為@Dima Fitiskin的評論提出了一種更好的方法,因為當您已經有一個對索引$i
的迭代引用時,您實際上並不需要花費調用另一個函數array_pop
或在$workID
堆棧上拋出另一個變量的開銷。環。
<?php
require_once('includes/dbconnect.php');
$varWorkID = $_POST['workid'];
$varDate = $_POST['date'];
$varType = $_POST['type'];
$varSuper = $_POST['supervisor'];
$varReference = $_POST['reference'];
// iterate over the count of the whole array $varWorkID = $_POST['workid']
for ($i=0; $i < count($varWorkID); $i++ )
{
mysqli_query($conn,"INSERT INTO searches (workid,date,type,super,reference) VALUES('".$varWorkID[$i]."','".$varDate."','".$varType."','".$varSuper."','".$varReference."')");
}
echo "Completed";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.