通过$ _POST数据更新数据库行,键为行ID

时间:2014-05-27 19:58:38

标签: php mysql

我从用户那里收到以下$ _POST数据

url[3] = "beheer"
name[3] = "knowledge"
parent_id[3] = "0"

url[4] = "asd"
name[4] = "adasdas"
parent_id[4] = "0"

url[5] = "asdasd"
name[5] = "asdsadasd"
parent_id[5] = "0"

其中键是每个数据的id。 我想遍历所有数据并更新行

这将执行例如:

mysql_query("UPDATE table SET url = 'beheer', name = 'knowledge', parent_id='0' WHERE id = 3");

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你可以这样做:

   foreach ($url as $key => $value)
    mysql_query("UPDATE table SET url = '$value', name = '$name[$key]', parent_id='$parent_id[$key]' WHERE id = '$key'");

答案 1 :(得分:0)

正如我所看到的,解决它的最简单方法是使用关联数组。所以你有一个名为$ values的变量,然后像下面这样添加你的名字:

$values[0]['url']
$values[0]['name']
$values[0]['parent_id']

$values[1]['url']
$values[1]['name']
$values[1]['parent_id']

$values[2]['url']
$values[2]['name']
$values[2]['parent_id']

这将使您能够使用类似的foreach循环遍历数组。

foreach($values AS $value) {
  $url = $value['url'];
  $name = $value['name'];
  $parent_id = $value['parent_id'];

  $query = "INSERT INTO table (url,name,parent_id) VALUES ('$url','$name','$parent_id')";
}

$sql->query($query);

这当然是一个简单的例子,但它应该会有所帮助。