如何显示表中的值,修改它们,再次保存它们

时间:2017-03-05 09:07:22

标签: php html mysql

我正在尝试显示表中的值,并希望修改表单提交的值。

  

这是我的代码:

<?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]

1 个答案:

答案 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! 并选择行。

相关问题