【问题标题】:my mysql table doesnt get refreshed what to do我的mysql表没有刷新怎么办
【发布时间】:2012-07-30 02:13:37
【问题描述】:

在插入/删除/更新之后,我必须手动更新页面,直到我看到结果..为什么?我该如何解决这个问题

   if (isset($_POST['action']) && $_POST['action']=='submitted') {
 if (isset($_POST['update'])) {
    $selected = $_POST['selected'];
    for ($i=0; $i<$columncount;$i++){
    $value[$i] = $_POST[$name[$i]];
     foreach ($selected as $j)
    mysql_query ("UPDATE $tablename set $name[$i]='".$value[$i][$j]." 'WHERE $name[0]=".$value[0][$j]);}
}

从表单中读取表值并更新

【问题讨论】:

  • 仍然没有得到确切的问题是什么......你手动更新是什么意思......
  • 检查 mysql 查询的有效性。在执行之前打印查询并尝试在 phpmyadmin 或 sql 控制台中执行它们。还要检查您是否在更新查询之前执行选择查询

标签: php mysql html forms


【解决方案1】:

因为你在显示表格后更新了数据库。

换句话说,您获取值、显示它们,然后更新它们。要解决这个问题,只需将上面的代码放在表格显示上方。

【讨论】:

  • 我试过了,但是说 post 值无法识别索引并且根本无法识别它
  • 我时不时会出现这种情况,通常是由您描述的问题引起的。如果页面总是在恰好重新加载一次后显示更新的值,则尤其有可能。
  • @user1552802 :“帖子值无法识别索引”是什么意思,请更准确。是 PHP 错误吗?
【解决方案2】:

除了明显的SQL injection 漏洞只是乞求您的服务器pwn3d 之外,您的查询没有任何错误处理 - 您假设它成功了。为什么不花额外的 2 秒时间来尝试处理您的查询实际上可能存在语法错误的可能性?

$result = mysql_query(...) or die(mysql_error());
                          ^^^^^^^^^^^^^^^^^^^^^^

【讨论】:

    【解决方案3】:

    试试这个。希望它会工作

    mysql_query ("UPDATE ".$tablename." set ".$name[$i]."='".$value[$i][$j]."' WHERE ".$name[0]."='".$value[0][$j]."';");}
    

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 2015-05-25
      • 2018-05-26
      • 2012-09-06
      • 2021-05-02
      • 1970-01-01
      相关资源
      最近更新 更多