Php 通过$\u POST data更新数据库行,键作为行的id
我从用户那里收到了以下$u POST数据Php 通过$\u POST data更新数据库行,键作为行的id,php,mysql,Php,Mysql,我从用户那里收到了以下$u 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("UPD
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");
我如何解决这个问题?您可以这样做:
foreach ($url as $key => $value)
mysql_query("UPDATE table SET url = '$value', name = '$name[$key]', parent_id='$parent_id[$key]' WHERE id = '$key'");
在我看来,解决这个问题最简单的方法是使用关联数组。因此,您有一个名为$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);
这当然是一个简单的例子,但它应该会有所帮助。那么这个查询是否没有按照您期望的方式工作?索引(url、名称、父id)是否总是相同的,或者它是否应该适应给定的任何索引?@ChrisWillard,查询示例就是我想从程序逻辑中得到的查询