所以我正在创建一个将多行更新为mysql的php文件,但每当我提交时我都会遇到问题,而且我不知道我是否正在使用foreach。这是我的代码:
$query = "SELECT id, departments, deptName, headOfOffice FROM aip";
$result = mysqli_query($db,$query);
$count = mysqli_num_rows($result);
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
echo '<td><input type="text" name="id[]" value="'.$row['id'].'" readonly></td>';
echo '<td><input type="text" id ="department_code" name="department_code[]" value="'.$row['departments'].'"></td>';
echo '<td><input type="text" id="department_name" name="department_name[]" value="'.$row['deptName'].'"></td>';
echo '<td><input type="text" id="department_head" name="department_head[]" value="'.$row['headOfOffice'].'"></td>';
echo '</tr>';
}
echo '<tr>';
echo '<td></td>';
echo '<td></td>';
echo '<td><input type="submit" name="update" value="Update">';
echo '</tr>';
if($_SERVER["REQUEST_METHOD"] == "POST"){
$deptid = $_POST['id'];
$code = $_POST['department_code'];
$dname = $_POST['department_name'];
$dhead =$_POST['department_head'];
foreach($_POST['id'] as $count){ \\ i don't know if this is right.
$query2 = "UPDATE aip SET deparments = '".$code[$count].'" WHERE id = "'.$deptid[$count]."'";
$result2 = mysqli_query($db,$query2);
}
}
错误说&#34;未定义的偏移量:2&#34; 我是这里的新手,这是我第一次使用数组。希望有人能提供帮助。请!
答案 0 :(得分:3)
foreach($_POST['id'] as $count => $id){
$query2 = "UPDATE aip SET deparments = '".$code[$count]."' WHERE id = '".$deptid[$count]."'";
$result2 = mysqli_query($db,$query2);
}
P.S。您的代码易受SQL注入攻击
答案 1 :(得分:0)
使用foreach有两种方法:
foreach($array as $key => $value){
...
}
或
foreach($array as $value){
...
}
foreach循环将迭代遍历数组中的所有元素,在每个元素的括号中执行一次代码,分别在$key
和$value
中保存元素的键名和值(您可以使用$value
和$key
之外的其他内容。
我不完全理解你在代码中做了什么,所以如果你添加一个解释,我将能够解决你的具体情况;
答案 2 :(得分:0)
我已经改变了你的脚本..请使用我的脚本。你不需要改变任何东西只需复制和粘贴我的脚本。
if($_SERVER["REQUEST_METHOD"] == "POST"){
$data = $_POST;
if(count($data['id'])>0){
foreach($data as $key=>$item){
$query2 = "UPDATE aip SET deparments = '".$item['department_code'][$key]."', deptName = '".$item['department_name'][$key]."',headOfOffice = '".$item['department_head'][$key]."' WHERE id = '".$item['id'][$key]."'";
$result2 = mysqli_query($db,$query2);
}
}
}