【问题标题】:PHP MYSQL Update values in database from a form with buttonPHP MYSQL 从带有按钮的表单更新数据库中的值
【发布时间】:2018-11-16 13:51:33
【问题描述】:

大家好!

我的 webdevelopent 课程有一个作业,我必须在其中创建一个带有 管理页面的餐厅网站,用户可以在其中更新每周菜单,显示在网站。

所以,我的 admin.php 的一部分看起来像这样:

print "<h1> Weekly menu </h1>";
print "<table border=1>
<tr>
<h2>Monday weekly menu.</h2>
<th>Apperitive/th>
<th>Main dish</th>
</tr>";
    print '<form action="update.php" method="post" name="update">';
    print '<td><input type="text" name="first_value"> </td>';
    print '<td><input type="text" name="second_value"> </td>';
    print '<td><input type="submit" name="Frissites" value="update"> </td>';
    print "</form>";
    print "</tr>";`

对不起,你会在代码中找到一些匈牙利语单词,那是因为我来自匈牙利....:)

update.php 看起来像这样:

<?php
mb_internal_encoding("utf-8");
require_once("functions.php");
$connect=dbconnect();
if(isset($_POST["Frissites"]))
{
    $sql="UPDATE hetimenu SET elso='".$_POST["first_value"]."', masodik='".$_POST["second_value"]."' WHERE id='1'";
    $query=pg_exec($connect,$sql);
}
?>

在表格中,您可以找到 elso(表示第一个)和 masodik(第二个​​)。这些行已经创造了价值,这就是我想要更新的内容,方法是写下你想要在数据库中的食物,并在网站上显示。通过按下更新按钮,它应该更新它......但实际上没有任何反应。 :(

我给老师看了,他说他看不出有什么问题,也不知道有什么问题。

感谢您的回答! :)

【问题讨论】:

  • 您使用的是哪个 dbms? (标题是 MySQL,但后面有一个 标签...)
  • 旁注:&lt;form&gt; 不能成为 &lt;table&gt; 的子级。
  • 该死的,是的...我写错了dbm.......是的,psql....谢谢:)!
  • 你检查过错误日志吗?
  • 添加print($sql) 并尝试手动运行它以查看问题是否出在查询本身。 HTML 的几个注意事项:1 将表格放在&lt;form&gt; 中。 2 在您的第一行中,&lt;h2&gt; 没有被&lt;th&gt;&lt;td&gt; 包围。 3 你的最后一行是&lt;/tr&gt;,但没有匹配的&lt;tr&gt; 更高。 4 查看&lt;thead&gt;&lt;tbody&gt; 以获取您的&lt;table&gt;5 您的第一个表格行有 2 个元素,您的第二行(表单)有 3 个。它们应该匹配。 6 您可以在&lt;form&gt; 上使用&lt;legend&gt; 而不是将&lt;h2&gt; 放在表格中7 使用CSS 作为表格边框。

标签: php sql database psql


【解决方案1】:

为什么要使用太多的打印件?并在编写 HTML 标记时关闭 PHP 括号,例如

... your php code
?> //closes PHP code
<h1> Weekly menu </h1>
<table border=1>
<tr>
<h2>Monday weekly menu.</h2>
<th>Apperitive/th>
<th>Main dish</th>
</tr>";
<form action="update.php" method="post" name="update">
<td><input type="text" name="first_value"> </td>
<td><input type="text" name="second_value"> </td>
<td><input type="submit" name="Frissites" value="update"> </td>
</form>
</tr>
<?php ...continue with your php code

您是否尝试过调试您的代码?

请花点时间查看有关如何在 IDE 中使用 xdebug 的指南。

顺便说一句,pg_exec 已被弃用,请改用 pg_query。而且您的 id 应该是数字,因此您的查询应该使用“WHERE id = 1”

【讨论】:

    【解决方案2】:

    好的,谢谢大家回答!总的来说,我将整个 2 个代码放入 1 个 php.ini 文件中。 它看起来像这样:

    if(isset($_POST['submit']))
       {
       $update="UPDATE hetimenu SET first='".$_POST["soup"]."', second='".$_POST["maindish"]."' WHERE id=".$_POST["days"];
       $query=pg_exec($connect,$update);
       header("Location: miksoo_admin.php");
       }
    print '<hr>';
    print '<form name="foodform" method="post">';
    print '<select name="days">
    <option value="1">Monday</option>
    <option value="2">Thursday</option>
    <option value="3">Wednesday</option>
    </select>';
    print '<input type="text" name="soup" value="">';
    print '<input type="text" name="maindish" value="">';
    print '<input type="submit" name="submit" value="Update">';
    print "</form>";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 2018-09-16
      • 2015-02-21
      相关资源
      最近更新 更多