![](/img/trans.png)
[英]How to update table field in SQL by adding to it number received from the HTML form?
[英]How to update a field in sql table with inputs from an html form against displayed results which are themselves output of an sql query?
我有一个如下所示的数据库。
Id Class Name Email Comments
1 4 Thomas Sheffield tom@email.com
2 5 Natasha Rosewhite natasha@email.com
3 4 Jerome Manyville jerry@email.com
4 6 Susan Carrey suzzy@email.com
5 4 Selina Waterwall selina@email.com
我有一个php页面,可以查询特定类的名称并将其显示为html表。 html页面还将在每个显示名称的输入字段中输入注释。 单击提交按钮后,应在数据库中更新针对每个特定名称的注释。 我应用了以下逻辑-唯一的ID将被带到另一个php页面(由Submit按钮的action字段指示),然后使用$ _POST更新注释。
我使用了以下代码
<?php
session_start();
$username = "Debo";
$password = "123456";
$hostname = "localhost";
$Idtemp = array();
$i=0;
$sql = "SELECT `Id`, `Name`, `Email` FROM `registration` WHERE `Class`=4";
$dbconnect=mysqli_connect($hostname, $username, $password, "test1")
or die("unable to connect");
$result = mysqli_query($dbconnect, $sql);
ECHO "<table border=\"2\">
<tr bgcolor=\"#cccccc\">
<td width=\"100\">Id</td>
<td width=\"200\">Name</td>
<td width=\"100\">Email</td>
<td align=\"center\" width=\"100\">COMMENTS</td>
</tr>";
while($row = mysqli_fetch_array($result))
{ ECHO "<tr><td width=\"100\">".$row['Id']."</td>";
ECHO "<td width=\"200\">".$row['Name']."</td>";
ECHO "<td width=\"100\">".$row['Email']."</td>";
ECHO "<td align=\"center\"><input type=\"text\" name=\"comments[]\" size=\"50\"</td></tr>";
$IDtemp[$i]=$row['Id'];
$i++;};
ECHO"
<table>
<form action=\"processregistration.php\" method=\"post\">
<tr>
<td colspan=\"8\" align=\"center\"><input type=\"submit\" name=\"submit\" value=\"Submit Feedback\"></td>
</tr>
</table>";
$_SESSION['CURRENTID']=$IDtemp;
?>
然后在提交时,转到
<?php
session_start();
$COMMENTS = array();
$ID = $_SESSION['CURRENTID'];
var_dump($ID);
if (isset($_POST['submit']))
{
$COMMENTS=$_POST['comments'];
};
$username = "Debo";
$password = "123456";
$hostname = "localhost";
foreach($ID as $key=>$n)
{
$sql = "UPDATE `test1`.`registration` SET `Comments` = $COMMENTS[$key] WHERE `registration`.`UID` = $n";
var_dump($sql);
$dbconnect=mysqli_connect($hostname, $username, $password, "test1")
or die("unable to connect");
mysqli_query($dbconnect, $sql);
if (mysqli_error($dbconnect))
{
ECHO "Error Description:".mysqli_error($dbconnect);};
};
?>
我发现“评论”没有发布。 我在第10行收到通知'undefined index:comments'。
我究竟做错了什么? 我对php很陌生。 请帮忙。 另外,我试图实现自己想要达到的目标的方法是正确的还是有更好的方法?
问候。
看来您的comments[]
输入不在您的<form>
。 将开始表单标签移动到HTML的开头应会修正未定义的索引通知:
ECHO "<form action=\"processregistration.php\" method=\"post\">
<table border=\"2\">
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.