我已经好几天了.我已经搜索了如何更新表,并设法获得更新行,但只有表中的最后一行.所以现在我想要一个循环遍历所有输入并用输入的值更新数据库.我认为需要纠正的代码位于代码末尾附近我想做的事:在html表中获取/显...
我已经好几天了.我已经搜索了如何更新表,并设法获得更新行,但只有表中的最后一行.所以现在我想要一个循环遍历所有输入并用输入的值更新数据库.我认为需要纠正的代码位于代码末尾附近
我想做的事:
>在html表中获取/显示数据库
>更改某些列的值
>使用提交按钮更新数据库表,该按钮更新数据库中的每一行
下面是Web视图中表格的图片:
<?php
//Connect to database
include '../db/connect.php';
?>
<form action='test7.php' method="post">
<table border='1'>
<?php
$result = $MySQLi_CON->query("SELECT * FROM users");
echo "<tr>";
echo "<td colspan='3'>CLASS 1</td>";
echo "</tr>";
//All table rows in database presented in html table
while($row = $result->fetch_array()){
echo "<tr>";
echo "<td><input type='hidden' name='user_id[]' value='".$row['user_id']."' /></td>";
echo "<td>username :<input type='text' name='username[]' value='".$row['username']."' /></td>";
echo "<td>email :<input type='text' name='email[]' value='".$row['email']."' /></td>";
echo "<td>rank :<input type='number' name='rank[]' value='".$row['rank']."' /></td>";
echo "</tr>";
}
echo "<input type='submit' name='update' value='UPDATE' />";
?>
<table>
</form>
<?php
if(isset($_POST['update'])){
$total = count($_POST['rank']);
$user_id_arr = $_POST['user_id'];
$rank_arr = $_POST['rank'];
for($i = 0; $i < $total; $i++){
$user_id = $user_id_arr[$i];
$rank = $rank_arr[$i];
$query = "UPDATE users SET `rank`= '".$rank."' WHERE `user_id`= '".$user_id."'";
$MySQLi_CON->query($query);
header('Location: test7.php');
}
}
?>
当我按UPDATE按钮时,我得到PHP注意:数组到字符串转换….
它指的是第30行,它是这一行:
$query =“UPDATE用户SET rank = $_ POST [rank] [$row] WHERE user_id = $value”;
编辑:编辑上面的代码到工作代码.谢谢@Frayne Konok的帮助.
解决方法:
You did a great mistake here, Why you use the
$result
in foreach
loop?? FRom where the$result
comes?? The$result
is the resource
of thesql
query.
试试这个:
if(isset($_POST['update'])){
$total = count($_POST['rank']);
$user_id_arr = $_POST['user_id'];
$rank_arr = $_POST['rank'];
for($i = 0; $i < $total; $i++){
$user_id = $user_id_arr[$i];
$rank = $rank_arr[$i];
$query = "UPDATE users SET `rank`= '".$rank."' WHERE `user_id`= '".$user_id."'";
$MySQLi_CON->query($query);
}
}
试试这个,让我知道是否有任何问题.
本文标题为:如何使用整个html表更新数据库(PHP,MySQL)
基础教程推荐
- layui数据表格导入数据 2022-12-13
- 防止重复发送Ajax请求的解决方案 2022-12-15
- vue 路由 取数据 2023-10-08
- js实现ajax分页完整实例 2022-12-28
- vue3中的ref()详解 2023-07-09
- AJAX跨域问题解决方案详解 2023-02-24
- 实例代码讲解ajax实现的无刷新分页 2022-12-15
- CSS自定义滚动条样式案例详解 2022-11-20
- JavaScript函数this指向问题详解 2023-08-12
- 微信小程序开发之全局配置与页面配置实现 2022-08-30