我正在尝试在这样的php语句中插入一个表单
while($row = mysql_fetch_array($result))
{
echo "<form id='send' action='up.php' method='POST'>
<tr>
<td>" . $row['s_no'] ."</td>
<td> <label for='student_name'><textarea name='student_name' >".$row['student_name']."</textarea></label></td>
<td> <textarea name='roll_no'>".$row['roll_no']. "</textarea></td>
<td> <textarea name='company'>".$row['company']. "</textarea></td>
<td> <textarea name='contact_no' >".$row['contact_no']. "</textarea></td>
<td> <textarea name='email'>" .$row['email']. "</textarea></td>
</tr>
<input type='text' name='batch_name' disabled='disabled' size='7' value=" .$_POST['batch_name']. ">
<p align='center'><button id='submit' type='submit'>Update</button></p>
</form>";
}
我从数据库中获取数据并将其作为默认值放入texareas中,因此可以编辑。所以我计划使用UDPDATE查询来进行如下改动:
<html>
<title>Alumini Update</title>
<head>
<?php
$con = mysql_connect("localhost","root","momsgift");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("alumini", $con);
mysql_query("UPDATE $_POST[batch_name] SET contact_no = $_POST[contact_no] WHERE roll_no = '2321'");
mysql_close($con);
?>
但是在发送查询时,textarea中的数据没有加载到数据库中(BUt它重定向到up.php页面) 可能是什么原因?
答案 0 :(得分:0)
您正在生成无效的HTML。
如果不将表格包裹在整个表格中,则无法将表格包裹在表格行周围。
您的浏览器通过移动表单元素进行错误恢复。这是意外结果的最可能原因。
在生成的HTML上使用a validator。
答案 1 :(得分:0)
在MySQL更新查询中,您只更新contact_no
没有其他字段。
此外,您已将查询打开以进行SQL注入
$batch_number = mysql_real_escape_string($_POST['batch_name']);
$contact_no = mysql_real_escape_string($_POST['contact_no']);
$student_name = mysql_real_escape_string($_POST['student_name']);
$roll_no = mysql_real_escape_string($_POST['roll_no']);
$company = mysql_real_escape_string($_POST['company']);
$email = mysql_real_escape_string($_POST['email']);
mysql_query("UPDATE ('" . $batch_no. "')
SET contact_no = ('" . $contact_no . "'),
student_name = ('" . $student_name. "'),
company = ('" . $company . "'),
email = ('" . $email . "'),
WHERE roll_no = ('" . $roll_no . "')");
这个(mysql_real_escape_string)不会解决所有问题,使用PDO是一种更好的方法,但它是一个非常好的垫脚石。
答案 2 :(得分:0)
首先写下这个并查看结果,如果它显示textarea的文本,则表明文本正在以正确的方式发送。问题出在你的sql代码中。 echo $ _POST ['contact_no']; 然后你可以回显查询并复制并在phpmyadmin中运行它并查看sql的错误。
答案 3 :(得分:0)
//EXAMPLE 1
if (isset($_POST['update']))
{
$result = pg_query($db_con, "UPDATE mydbtable SET mydbrecord = '$_POST[my_var1]' WHERE mydbrecord_id = '$_POST[myfilterbyid_var]'");
if (!$result)
{
echo "Update failed!!";
}
else
{
echo "Update successfull!";
}
}
//EXAMPLE 2
<form name="display" action="" method="post">
<select name="mydropdown" action="test.php" method="post">
<?php
while($row = pg_fetch_assoc)
{
echo "<option id=\"{$row['result_var']}\">{$row['result_var']}</option>";
}
?>
</select>