我正在尝试显示表中的值,并希望修改表单提交的值。
这是我的代码:
<?php
$sql = mysql_query("SELECT * FROM TABLENAME");
//Get and store values into new variable
while ($row = mysql_fetch_array($sql)) {
$name[] = $row['name'];
$status[] = $row['status'];
}
//运行循环以识别值
for ($i = 0; $i < count($name); $i++) {
echo "<tr> ";
echo "<td>" . $name[$i] . "</td>";
echo "<td><input name='offer_new_name' size='5' type='text' value='$status[$i]' /></td>";
}
echo '<form action="" method="post">';
echo '<input type="submit" value="Save New Values" name="save_new">';
echo "</form>";
if (isset($_REQUEST['save_new'])) {
for ($i = 0; $i < count($name); $i++) {
echo "name:$name[$i]<br>";
echo "status:$status[$i]";
}
}
当我单击“保存新值”时,它会显示从db获取的旧值。 请指导我如何保存
echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>";
为每个名称添加新变量并再次将它们保存到同一个表中。
如果我的方法对此要求不合适,请指导我。
UPDATE1:
表格结构:
id name: status:
auto name1 0
auto name2 1
auto name3 0
运行的地方,
while ($row = mysql_fetch_array($sql)) {
$name[] = $row['name'];
$status[] = $row['status'];
}
值存储如下
$name[0]
$status[0]
$name[1]
$status[1]
$name[2]
$status[2]
我可以像这样运行更新查询
UPDATE TABLE set status=$status[0] where name= $name[0]
答案 0 :(得分:3)
首先,以下行应该在Message
<form></form>
其次,此代码块应位于脚本之上:
echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>";
在此代码块中,您需要更新查询,以更新数据库,例如
if(isset($_REQUEST['save_new'])){
//Your update query
}
这是您可以访问输入值的变量;
UPDATE TABLENAME SET a = new_value WHERE b = c;
最后,我强烈建议您使用准备好的陈述。否则,您的代码将打开SQL注入。
伪代码:
$_POST['new_status'];
这个'新id'可以保存为脚本中的隐藏输入:
<?php
//if the submit button is pressed, update the Database
if (isset($_REQUEST['save_new'])) {
//Update your Database
}
//get the new values from Database
$sql = mysql_query("SELECT * FROM TABLENAME");
//store values into new variable
$name = array();
$status = array();
$id = array();
while ($row = mysql_fetch_array($sql)) {
$name[] = $row['name'];
$status[] = $row['status'];
$id[] = $row['id'];
}
//create HTML-From
echo '<form action="" method="post">';
for ($i = 0; $i < count($name); $i++) {
echo "<tr> ";
echo "<td>" . $name[$i] . "</td>";
echo "<td><input name='new_status' size='5' type='text' value='$status[$i]' /></td>";
}
echo '<input type="submit" value="Save New Values" name="save_new">';
echo "</form>";
?>
在更新查询之前,您可以解密$indecipherable_id = (int)$id * 7258289382234; //Only a example --> use a more complex algorithm!
并选择行。