PHP MySQL一次插入/更新多行
我看过这个问题: 但我不知道如何将此应用于具有多个输入的表单。 我希望这些输入进入同一行(每个数组id) My PHP呈现以下HTML:PHP MySQL一次插入/更新多行,php,mysql,arrays,Php,Mysql,Arrays,我看过这个问题: 但我不知道如何将此应用于具有多个输入的表单。 我希望这些输入进入同一行(每个数组id) My PHP呈现以下HTML: <div class="panel-body"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 employee-container"> <label for="visible-107
<div class="panel-body">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 employee-container">
<label for="visible-107">
<img title="Jane Doe" src="/images/prof-pics/default.jpg" class="img-responsive img-circle" alt="Jane Doe">
</label>
<h4><input type="checkbox" name="visible[0]" id="visible-107"> <label for="visible-107">Jane Doe</label></h4>
<div class="input-group">
<span class="input-group-addon">Function</span>
<input type="text" class="form-control" name="function[0]" id="function-107">
</div>
<div class="input-group">
<span class="input-group-addon">Order</span>
<select class="form-control" name="order[0]" id="order-107">
<option value="">-- select one --</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
Description<br>
<textarea class="form-control" name="description[0]" id="description-107"></textarea>
</div>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 employee-container">
<label for="visible-2"><img title="John Doe" src="/images/prof-pics/default.jpg" class="img-responsive img-circle" alt="John Doe"></label>
<h4><input type="checkbox" name="visible[1]" id="visible-2"> <label for="visible-2">John Doe</label></h4>
<div class="input-group">
<span class="input-group-addon">Function</span>
<input type="text" class="form-control" name="function[1]" id="function-2">
</div>
<div class="input-group">
<span class="input-group-addon">Order</span>
<select class="form-control" name="order[1]" id="order-2">
<option value="">-- select one --</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
Description<br>
<textarea class="form-control" name="description[1]" id="description-2"></textarea>
</div>
</div>
</div>
无名氏
作用
命令
--选择一个--
1.
2.
3.
4.
说明
无名氏
作用
命令
--选择一个--
1.
2.
3.
4.
说明
我如何迭代这些数组,以便可以按每个数组ID插入/更新它们
在实施了娜娜·帕提卡的回答之后
function set_team($web_mysqli, $mysqli, $uid, $visible, $function, $order, $description, $action, $update_id = null ) {
$number_empl = sizeof($function);
for($i=0; $i<$number_empl; $i++) {
$uid = $uid[$i];
$visible = $visible[$i];
$function = $function[$i];
$order = $order[$i];
$description = $description[$i];
$name = get_full_name($mysqli, $uid, false);
$sql = "INSERT INTO team (name, function, description, displayorder, visible) VALUES ('$name', '$function', '$description', '$order', '$visible')";
$web_mysqli->query($sql) or die(mysqli_error($web_mysqli));
}
$_SESSION['success'] = "Employee list website updated";
header("Location: ".BASE_PATH."/includes/views/list-employees.php");
exit();
if(isset($_POST['submit-btn'])) {
set_team($web_mysqli, $mysqli, $_POST['uid'], $_POST['visible'], $_POST['function'], $_POST['order'], $_POST['description'], 'insert');
}
function set\u团队($web\u mysqli、$mysqli、$uid、$visible、$function、$order、$description、$action、$update\u id=null){
$number_emp=sizeof($function);
对于($i=0;$iquery($sql)或die(mysqli_错误($web_mysqli));
}
$\会话['success']=“员工名单网站更新”;
标题(“位置:“.BASE_PATH”。/includes/views/list employees.php”);
退出();
如果(isset($_POST['submit-btn'])){
设置团队($web_mysqli、$mysqli、$$u POST['uid']、$$u POST['visible']、$\u POST['function']、$\u POST['order']、$\u POST['description']、'insert');
}
当我仅保存第一个名称时,会将其插入表中,后跟3个空行。无需
名称[0]
<input type="checkbox" name="visible[0]" id="visible-107">
<input type="text" class="form-control" name="function[0]" id="function-107">
<select class="form-control" name="order[0]" id="order-107">
<textarea class="form-control" name="description[0]" id="description-107"></textarea>
这是正确的
$Uid = $uid[$i];
$Visible = $visible[$i];
$Function = $function[$i];
$Order = $order[$i];
$Description = $description[$i];
我已更改了您的代码。请使用下面的代码。它将正常工作
<?
function set_team($web_mysqli, $mysqli, $uid, $visible, $function, $order, $description, $action, $update_id = null ) {
$number_empl = sizeof($function);
for($i=0; $i<$number_empl; $i++) {
$Uid = $uid[$i];
$Visible = $visible[$i];
$Function = $function[$i];
$Order = $order[$i];
$Description = $description[$i];
$name = get_full_name($mysqli, $Uid, false);
$sql = "INSERT INTO team (name, function, description, displayorder, visible) VALUES ('$name', '$Function', '$Description', '$Order', '$Visible')";
$web_mysqli->query($sql) or die(mysqli_error($web_mysqli));
}
$_SESSION['success'] = "Employee list website updated";
header("Location: ".BASE_PATH."/includes/views/list-employees.php");
exit();
if(isset($_POST['submit-btn'])) {
set_team($web_mysqli, $mysqli, $_POST['uid'], $_POST['visible'], $_POST['function'], $_POST['order'], $_POST['description'], 'insert');
}
?>
您将使用两次order[]或function[]是固定的还是没有限制的。只是问一下不固定,这是基于检索到的记录数的变量。好的。等待我的回答。$visible=visible[$i]
不应该是$visible=$visible[$i]
?是的。是的。打字错误@MartijnICU。我更新了我的代码。@MartijnICU。请看一看。还有,让我知道发生了什么事?页面开头的行发生了变化,如extract($\u POST);$sizeOfFunc=sizeof($function)
。请看一看@MartijnICU我们已经更新了我的答案@MartijnICU。请看一看。它会工作的。只是因为一个简单的问题,它不工作。现在它会工作了。
$uid = $uid[$i];
$visible = $visible[$i];
$function = $function[$i];
$order = $order[$i];
$description = $description[$i];
$Uid = $uid[$i];
$Visible = $visible[$i];
$Function = $function[$i];
$Order = $order[$i];
$Description = $description[$i];
<?
function set_team($web_mysqli, $mysqli, $uid, $visible, $function, $order, $description, $action, $update_id = null ) {
$number_empl = sizeof($function);
for($i=0; $i<$number_empl; $i++) {
$Uid = $uid[$i];
$Visible = $visible[$i];
$Function = $function[$i];
$Order = $order[$i];
$Description = $description[$i];
$name = get_full_name($mysqli, $Uid, false);
$sql = "INSERT INTO team (name, function, description, displayorder, visible) VALUES ('$name', '$Function', '$Description', '$Order', '$Visible')";
$web_mysqli->query($sql) or die(mysqli_error($web_mysqli));
}
$_SESSION['success'] = "Employee list website updated";
header("Location: ".BASE_PATH."/includes/views/list-employees.php");
exit();
if(isset($_POST['submit-btn'])) {
set_team($web_mysqli, $mysqli, $_POST['uid'], $_POST['visible'], $_POST['function'], $_POST['order'], $_POST['description'], 'insert');
}
?>
<?
error_reporting(0);
extract($_POST);
echo $number_empl = sizeof($function);
for($i=0; $i<$number_empl; $i++)
{
$Visible = $visible[$i];
$Function = $function[$i];
$Order = $order[$i];
$Description = $description[$i];
$name="Just";
echo $sql = "INSERT INTO team (name, function, description, displayorder, visible) VALUES ('$name', '$Function', '$Description', '$Order', '$Visible')"."<br>";
}
?>