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

时间:2014-12-06 12:59:30

标签: 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>

其他字段相同..

1 个答案:

答案 0 :(得分:0)

在这种情况下,请尝试在<input>字段中输入类似的内容,以检查字段是否为空并且是否为asign。(未经过测试)

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>