php - 在表单中加载数据并更新数据库中的行

标签 php mysql

我从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/

相关文章:

php - 客户端上的php或javascript可以链接到远程服务器数据库吗?

php - Codeigniter-如何将不同大小的数组插入数据库

MySQL 全文搜索 : no results

php - 无法通过ajax传递复选框的值

PHP - mysql_numrows() 期望参数 1 是资源, bool 值给出

php - bind_param 并在循环中执行?

java - 无法验证使用 jBcrypt 使用 php password_hash() 创建的 passwordhash+salt

PHP OOP - 重复记录条目

mysql - 在mysql中复制没有数据的数据库结构(带有空表)

PHP mysql查询判断不回显重复部分