我必须先进行SELECT * from table WHERE NOT column=0
的第一个查询,并使用其中的结果执行类似下面的foreach循环。
foreach($results as $result) {
$nox = $result[field_x];
//Use nox for whatever;
//Then update some fields in SQL; }
并继续这样做,直到完成第一个查询中的所有项目。
语法是什么?
答案 0 :(得分:3)
除非您在PHP中进行了大量处理,否则您很可能只需在multi-table UPDATE中进行一次处理。
例如:
UPDATE table1 t1
JOIN table2 t2 ON t2.id = t1.id
SET t1.col = t2.col + 1
WHERE t1.somecol <> 0
答案 1 :(得分:1)
$sql = "SELECT * FROM `myTable` WHERE `column` = 0";
// query the database
$resource = mysql_query($sql);
// loop through the results
while ($result = mysql_fetch_assoc($resource)) {
// grab the value
$nox = $result['field_x']; // you should use quotes here, btw
// make your modifications;
++$nox; // or whatever
// build the query
$sql = sprintf(
"UPDATE `myTable` SET `field_x` = %d WHERE `id` = %d"
, $nox
, $result['id']
);
// run the query
mysql_query($sql);
}
答案 2 :(得分:0)
您只需使用简单的update
命令:
update tbl set field = '$value' where id = $id
在PHP-ese中:
$sql = 'update tbl set field = \'' .
mysql_real_escape_string($value) . '\' where id = ' . $id;
mysql_query($sql);