【问题标题】:Data from database don't show in my edit page数据库中的数据未显示在我的编辑页面中
【发布时间】:2016-05-20 09:23:02
【问题描述】:

现在一切正常。我现在可以查看和更新​​我的数据库中的数据。谢谢你帮助我。我已经更新了下面的代码。谢谢你:)

edit_news.php // 这是我的数据库中显示的内容可以更新的地方

    <?php
        mysql_connect("localhost", "root");
        mysql_select_db("alumni");
        if(isset($_GET['edit_id']))
        {

        $sql = "SELECT * FROM news WHERE id=".$_GET['edit_id']; 
        $result = mysql_query($sql);
        $row = mysql_fetch_array($result);

?>
<form action="/admin/update_news.php" method="post">
<div>
<input type="hidden" name="id" value="<?php echo  $row['id'] ?>"/>
<input type="text" name="title" value="<?php echo $row['title']; ?> "/>
<input type="text" name="body" value="<?php echo $row['body']; ?>"/>

<input type="submit" name="update" value="Save Changes"/>
<input type="submit" name="cancel" value="Cancel"/>

</div>
</form>

<?php 
        }
        ?>

update_news.php // 这是更新函数发生的地方

    <?php 
    date_default_timezone_set('Asia/Manila');
    include_once('db.php');
    if(isset($_POST['update']))
    {
        $title = mysql_real_escape_string(htmlspecialchars($_POST['title']));
        $body = mysql_real_escape_string(htmlspecialchars($_POST['body']));

        $sql = ("UPDATE news SET title='$title', body='$body' WHERE id=".$_POST['id']) or die(mysql_error());

            if(mysql_query($sql))
            {
            echo "<script type='text/javascript'>alert('Changes saved!!');
                    window.location.assign('admin_profile.php');</script>";
            }
            else
            {
            echo "<script type='text/javascript'>alert('Error while updating data.');
                    window.location.assign('admin_profile.php');</script>";
            }
    }
            if (isset($_POST['cancel']))
            {
                header("Location: admin_profile.php");
            }
?>

// 这是用户单击 edit 链接的地方,该链接将引导他们进入 edit_news.php

<a href="/admin/edit_news.php?edit_id=<?php echo $row[0]; ?>">EDIT</a>

【问题讨论】:

  • 试试&lt;a href="/admin/edit_news.php?id=" . $row['id'] . ""&gt;EDIT&lt;/a&gt;
  • 你不能混用mysql_mysqli
  • 您没有从 db 获取数据到编辑页面。Id 被传递给 edit_news,php 但您没有使用它。使用该 id 从数据库中获取数据到变量 $title 和 $body
  • 我将此代码添加到我的edit_news.php &lt;?php include_once('db.php'); $servername = "localhost"; $username="root"; $password = ""; $database = "alumni"; $connection = new mysqli($servername, $username, $password, $database); if ($connection-&gt;connect_error) { die("Connection failed: " . $connection-&gt;connect_error); } $id = $_POST['id']; $title = $_POST['title']; $body = $_POST['body']; $sql = "SELECT * FROM news WHERE id = $id"; $result = $connection-&gt;query($sql); $row=mysqli_fetch_array($result,MYSQLI_ASSOC); ?&gt; 但它仍然是一样的:( @jayadevkv

标签: php mysql sql web sql-update


【解决方案1】:

您将通过

在edit_news.php中获得id
 $id = $_GET['id']

然后使用该 id 从数据库中获取数据,使用 select 查询变量 $title 和 $body

$sql = "SELECT * FROM news WHERE id = $id";

然后使用您通过使用任何 mysql_fetch 函数发出上述查询获得的值填充表单元素

【讨论】:

  • 如果您在同一页面上指定数据库设置,则无需包含 db.php。
  • 对不起,我不确定我是否明白你的意思,但我还是这样做了:&lt;?php $servername = "localhost"; $username="root"; $password = ""; $database = "zchs_alumni"; $connection = new mysqli($servername, $username, $password, $database); if ($connection-&gt;connect_error) { die("Connection failed: " . $connection-&gt;connect_error); } $id = $_GET['id']; $sql = "SELECT * FROM news WHERE id =$id"; $result = $connection-&gt;query($sql); $row=mysqli_fetch_array($result,MYSQLI_ASSOC); $title = $row['title']; $body = $row['body']; ?&gt;
  • 但是当我点击“编辑”时,它仍然是一样的。我有一个警告:警告:mysqli_fetch_array() 期望参数 1 是 mysqli_result,edit_news.php 中给出的布尔值谢谢你试图帮助我
  • 您是否检查过您是否正确传递/获取 id 值。还要检查数据库设置是否正确。该错误意味着 $result 没有所需的值。请在 $connection->query($sql) 之前调试代码以查找任何错误
  • @eric 更改这一行 EDIT 。将 $row['id'] 存储在临时变量中,并在锚标记的 href 部分中使用该变量
【解决方案2】:

现在您已经从表单中删除了隐藏的输入类型,并在 update_news.php 中使用了 $_GET['id'] 再次出错。再次添加该字段并使用 $_POST['id'] 而不是 $_GET[' id'] 在 update_news.php

其余的现在看起来很好。

【讨论】:

  • 现在一切顺利!非常感谢你帮助我!谢谢@jayadevkv! :D
  • 很高兴我能提供帮助并感谢@eric 的支持 :)
猜你喜欢
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多