【问题标题】:Update button in PHP/Mysql needs to clicked twice in order to work?PHP/Mysql 中的更新按钮需要单击两次才能工作?
【发布时间】:2017-07-24 16:52:36
【问题描述】:

我对 php 和 sql 还很陌生,我试图弄清楚如何让表单按钮只被单击一次以进行更新。该程序已经有一个添加、搜索和删除功能,工作正常,只需要让它工作。它似乎正在更新,但在我再次单击之前它不会输出更新。这是我的代码:

if (isset($_POST['update']) &&
    isset($_POST['name']) &&
    isset($_POST['planet']) &&
    isset($_POST['country']) &&
    isset($_POST['population']) &&
    isset($_POST['density']))
{
    $name = get_post($conn, 'name');
    $planet  = get_post($conn, 'planet');
    $country = get_post($conn, 'country');
    $population = get_post($conn, 'population');
    $density = get_post($conn, 'density');
    $sql = "UPDATE cities SET planet = '$planet', country = '$country',     population = '$population', density = $density WHERE name = '$name' ;";
    $result = $conn->query($sql);

    if (!$result) die ("Database access failed: " . $conn->error);
}
echo <<<_END
<pre>
    name $row[0]
    planet $row[1]
    country $row[2]
    population $row[3]
    density $row[4]
</pre>
<form action="Hw05.php" method="post"><pre>
    <input type="hidden" name="update" value="yes">
    name <input type="text" name="name" value="$row[0]">
    planet <input type="text" name="planet" value="$row[1]">
    country <input type="text" name="country" value="$row[2]">
    population <input type="int" name="population" value="$row[3]">
    density <input type="int" name="density" value="$row[4]">
    <input type="submit" value="UPDATE RECORD">
</pre></form>
 _END; 

任何帮助都将不胜感激,就像我说我是 Php/mysql 的新手和更多的 Java 人一样。 (但是我喜欢php)。

【问题讨论】:

  • 你的$row从哪里来?你没有在任何地方定义它。而且在您的代码中,heredoc _END 前面有一个空格。在heredoc结束之前不应该有任何规范,在刚刚结束heredoc之后必须有一个新行。

标签: php html sql forms mysqli


【解决方案1】:

$row 中存储数据的查询不在你的代码中,所以我认为这个查询是在 UPDATE 查询之前完成的。您应该在 UPDATE 之后进行 SELECT 查询,因为在更新表之前选择了 $row 中的数据。

【讨论】:

  • 在 isset 上面初始化,仍然需要更新两次。 $rows = $result->num_rows;
  • @bobbert_the_adventurer 只需将您的 SELECT 查询移到 isset 块之后。我认为您在 isset 块之前没有使用 $row :)
【解决方案2】:

您的变量可能会在更新发生之前填充。您需要再次执行 SELECT 查询以获取更新的值。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多