我从mysql加载表格形式的数据。到目前为止,一切都很好。现在我制作了名为 Update
的按钮,它打开新页面,我可以在其中更新数据库中的单行。问题是,当我打开更新表单时,所有字段都是空的,如果我只想更新某些行并将其他字段留空,它们在数据库中也会更新为空白,这也是正常的。如何将信息填充到更新表单中?
这就是我目前用来更新数据库中的一些记录的方法。
文件edit.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$id = null;
if ( !empty($_GET['id']))
{
$id = $_REQUEST['id'];
}
if ( null==$id )
{
echo "null==$id";
}
// keep track post values
$name = $_POST['name'];
$image = $_POST['image'];
$image_big = $_POST['image_big'];
$description = $_POST['description'];
// update data
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE food set name = ?, image = ?, image_big = ?, description = ? WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($name, $image, $image_big, $description, $id));
Database::disconnect();
echo "<code>Updated!</code>";
// html form
例如,如果我将 name
留空,并在点击数据库中的 Update
按钮时在所有其他字段中放入一些新数据 name
将是空白。
更新了部分 html
表单
<!-- Text input-->
<div class="form-group">
<label for="meal_name">Име</label>
<input id="name" name="name" placeholder="Name" class="form-control" type="text">
</div>
其他字段相同..
最佳答案
在这种情况下,请尝试将类似的内容放在<input>
上您检查字段是否为空并分配的字段。(未测试)
value="<?php echo !empty($name)?$name:'';?>"
所以你的表单字段将变得像
<!-- Text input-->
<div class="form-group">
<label for="name">Name</label>
<input value="<?php echo !empty($name)?$name:'';?>" id="name" name="name" placeholder="Name" class="form-control" type="text">
</div>
关于php - 在表单中加载数据并更新数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27331947/