我已经好几天了.我已经搜索了如何更新表,并设法获得更新行,但只有表中的最后一行.所以现在我想要一个循环遍历所有输入并用输入的值更新数据库.我认为需要纠正的代码位于代码末尾附近我想做的事:在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)
- 简单明了带你了解CSS Modules 2022-11-13
- JavaScript开发简单易懂的Svelte实现原理详解 2023-08-12
- django 数据库html显示 2023-10-25
- AJAX请求以及解决跨域问题详解 2023-02-24
- linux – Gstreamer tcpserversink v0.10 vs 1.0和HTML5视频标签 2023-10-25
- Express代理转发服务器实现 2023-08-08
- CSS中的滑动门技术 2022-10-16
- react axios 跨域访问一个或多个域名问题 2023-02-23
- 在vue项目中封装filter过滤组件 2023-10-08
- vue3.0之watchEffect,watch用法 2023-10-08