【问题标题】:MYSQL PHP update data of each rowMYSQL PHP更新每行数据
【发布时间】:2014-11-07 14:34:05
【问题描述】:

我有这个问题想了一段时间。

我有一个这样的表格,在浏览器中使用 php 代码显示

username  |  price  |  description | 

 a       |  aaa     |   pending | [yes] [no] 
 b       |  bbb     |   yes     | [yes] [no]
 a       |  ccc     |    no     | [yes] [no]

只有用户名、价格和描述来自mysql数据库。

对于[yes] 和[no] 是按钮发布到这个查询。 products 是我的表名

 [yes] = UPDATE products SET description='YES' WHERE description='PENDING'
 [no]  = UPDATE products SET description='NO' WHERE description='PENDING'

我可以用我的查询做什么?我想要是和否按钮只更新一行, 我可以使用 GROUP BY 吗?我使用的查询完全错误,因为只要我有多个待处理,它就会将所有待处理更改为是。

【问题讨论】:

  • 您有一个名为update 的列?我希望您在查询中的某处使用刻度 `,但您没有显示。
  • AND title = <your_value> ?
  • 我不会使用除 id 之外的任何列来选择记录,我不知道您的具体需求,但标题通常不是唯一的。
  • 您将不得不重新格式化您的图形设计问题;这很令人困惑。在这里,我以为您有一个名为 update 的列,但可能不是这样。
  • 如果你想达到你想要的效果,你需要添加另一个必须是唯一的列。

标签: php mysql


【解决方案1】:

当您获取数据时,将每个对象的 id 保存在“id”HTML 属性中。您可以通过将其设置为类似 id="row-id" 来做到这一点。

然后,当您更新时,您只需使用 php 获取 id 即可将其添加到您的查询中。

"UPDATE products SET description='YES' WHERE id=:id"

【讨论】:

  • "WHERE id=:id" - 假设 OP 正在使用未知的 PDO。
  • 如果他没有,我们会让他使用它!
【解决方案2】:

.你的 where 语句不是唯一的。

尝试从要更新的当前行中获取 id。

<a href="?update=YES&id=ROW_ID">Yes</a>
<a href="?update=NO&id=ROW_ID">No</a>

然后在你的 sql 查询中你有这样的东西

"UPDATE products SET description='" . $_GET['update'] . "' WHERE id='" . $_GET['id'] . "'"

【讨论】:

  • 你是 JS 背景的,对吧?那些+ 需要是. 点。 '" + $_GET['update'] + "' WHERE id='" + $_GET['id'] + "''" . $_GET['update'] . "' WHERE id='" . $_GET['id'] . "'
  • 我只想给他一些基础知识。但这是真的,他需要在将这些值发送到数据库之前进行一些验证。
猜你喜欢
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多