php - 更新我的表 PHP/MySQL 时出现问题

标签 php mysql arrays

我希望我的问题足够清晰和完美,不会被投票——甚至不会被关闭。

我有简单的 HTML 表单:

<form ..>
  <input type="hidden" name="user_id" value="1" />

  <input type="text" name="tag[]" value="css" />
  <input type="text" name="tag[]" value="php" />
  <input type="text" name="tag[]" value="sql" />

  ...

  <input type="text" name="email" value="love@stackoverflow.com" />

</form> 

MySQL 架构:


 id 
 user_id
 tag 
 .... 

我想更新 user_id = 1tag,所以我编写了以下代码:
注意:我的表中只有一个用户。



$user_id = $_POST['user_id'];
$tag     = mysql_escape_string($_POST['tag']); // $tag is an array - print $tag
$email   = $_POST['email'];

foreach($tag as $value) {
    $DB = "UPDATE table SET tag = '$value' AND email = '$email' 
           WHERE user_id = '$user_id'";
    .... // run the query 
}



我得到:


 id   user_id   tag
 1    1         sql
 2    1         sql
 3    1         sql

而不是:


 id   user_id   tag
 1    1         css
 2    1         php
 3    1         sql

我问我是否遗漏了 PHP 代码中的某些内容?

最佳答案

在第一个更新查询中,您将 user_id 为 1 的所有记录(全部 3 个)设置为“css”,然后是“php”,最后是“sql”。 foreach循环结束后,都是“sql”

你可以试试这个:

$i = 1;
foreach($tag as $value) {
    $DB = "UPDATE table SET tag = '$value' WHERE user_id = '$user_id' AND id=$i";
    .... // run the query 
    $i++;
}

关于php - 更新我的表 PHP/MySQL 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848361/

上一篇:mysql连接问题

下一篇:mysql 外键

相关文章:

php - 使用内部连接对表进行分页

mysql - 在子查询中返回零而不是 NULL

mysql - PHP MYSQL 1个月后动态增值

javascript - Node.js - 如何检索对象/数组中元素的值

php - Google Play 抓取工具

php - 计算数组内部的数组? PHP

php - 在 Laravel 4 中将 Eloquent 模型返回为 JSON

php - 如何使用php插入mysql数据库时删除[,]括号

Java Hashmap 和已知索引的二维数组性能

javascript - 从 json 数组中删除特定元素