使用php和表单更新mysql数据

使用php和表单更新mysql数据,php,mysql,forms,sql-update,Php,Mysql,Forms,Sql Update,我在尝试创建一个使用html表单更新mysql数据的php页面时遇到了一个奇怪的问题 其思想是创建一个页面,从我拥有的“新闻”表中检索所有行,并将所有数据作为“默认”值插入html表单,这样我就可以在更改表单中的任何内容之前查看已经编写的内容。每个表单都是为检索到的每一行数据专门生成的 为此,我使用POST方法和两个php文件,一个名为“updateNews.php”,用于检索数据和呈现表单,另一个名为“newsUpdater.php”,用于注入更新的数据 我这里有两个问题。第一,表单不发布表单

我在尝试创建一个使用html表单更新mysql数据的php页面时遇到了一个奇怪的问题

其思想是创建一个页面,从我拥有的“新闻”表中检索所有行,并将所有数据作为“默认”值插入html表单,这样我就可以在更改表单中的任何内容之前查看已经编写的内容。每个表单都是为检索到的每一行数据专门生成的

为此,我使用POST方法和两个php文件,一个名为“updateNews.php”,用于检索数据和呈现表单,另一个名为“newsUpdater.php”,用于注入更新的数据

我这里有两个问题。第一,表单不发布表单中写入的新数据,而是将原始数据发布为“默认”。我想这是我的表单代码中的一个问题。我想我没有正确编码“默认”值

第二个问题很奇怪。我从“新闻”表中以相反的顺序检索行,但当我“提交”与特定行关联的表单时,它会发布第一行的数据,而不是我感兴趣的行

这是我在第一个php文件中的代码,它检索数据并呈现表单:

<html>

<head>          
    <?php
        include "connectToNews.php";
        mysqli_set_charset($conToNews,"utf8");
        $query = mysqli_query ($conToNews, "SELECT * FROM news ORDER BY id DESC");

    ?>

</head>

<body>

    <?php 

        while ($newsArray = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
            echo "<form action='newsUpdater.php' method='post' enctype='multipart/form-data'>";
            echo "<p>".$newsArray['id']."</p><br>";
            echo "<input name='Id' type='hidden' value='".$newsArray['id']."'>";
            echo "<input class='input' name='Fecha' type='text' value='".$newsArray['fecha']."'><br>";
            echo "<textarea class='textarea' name='Headline' type='text'>".$newsArray['headline']."</textarea><br>";
            echo "<textarea class='textarea' name='Story' type='text'>".$newsArray['story']."</textarea><br>";
            echo "<input type='submit' value='Actualizar'><br><br><br>";
            echo "</form>";
        }
    ?>

</body>
</html>


在更新查询中,要更新的列必须用逗号分隔,这就解释了为什么不更新数据

您不确定查询失败的原因和原因是您没有测试查询是否实际工作

测试所有
MYSQLI\uu
调用的结果总是一个非常好的主意,因此我会添加。这将向您显示一条错误消息,这将有助于进行错误检测

$query=mysqli_query ($conToNews, 
        "UPDATE news SET fecha='$Fecha', 
                         headline='$Headline',
                         story='$Story' 
         WHERE id='$Id'");


if ( $query === FALSE ) {
    echo mysqli_error($conToNews);
    exit;
}
这段代码中有一些SQL注入问题,您应该阅读

$query=mysqli_query ($conToNews, 
        "UPDATE news SET fecha='$Fecha', 
                         headline='$Headline',
                         story='$Story' 
         WHERE id='$Id'");


if ( $query === FALSE ) {
    echo mysqli_error($conToNews);
    exit;
}