Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP通过MySQL循环并更新现有值_Php_Mysql_Loops - Fatal编程技术网

PHP通过MySQL循环并更新现有值

PHP通过MySQL循环并更新现有值,php,mysql,loops,Php,Mysql,Loops,我有一个脚本,它从在线模型组成的XML提要中提取数据,并将结果输入到MySql数据库中,这部分工作正常 我有一个“状态”字段,显示模型是联机还是脱机,XML提要只包含实际联机的模型,因此我有要替换的查询集,并最终建立所有模型的数据库 问题是status字段总是包含值“online”,所以我尝试运行一个查询,在运行主查询以解析当前XML提要数据之前,该查询将遍历所有行并将status值更改为“offline” 使用: $query = "SELECT status FROM models"; $r

我有一个脚本,它从在线模型组成的XML提要中提取数据,并将结果输入到MySql数据库中,这部分工作正常

我有一个“状态”字段,显示模型是联机还是脱机,XML提要只包含实际联机的模型,因此我有要替换的查询集,并最终建立所有模型的数据库

问题是status字段总是包含值“online”,所以我尝试运行一个查询,在运行主查询以解析当前XML提要数据之前,该查询将遍历所有行并将status值更改为“offline”

使用:

$query = "SELECT status FROM models";
$result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\nQuery: $query");

while($row = mysql_fetch_array($result)) {
mysql_query ("UPDATE models SET '$row[1]'=offline WHERE '$row[1]'");
}
未生成错误,但也未更新任何内容$第[1]行是“状态”字段

我也尝试过使用带有for循环的mysql_num_rows查询,但没有多大成功,除了我能够在每一行中回显“status”的内容,但无法达到预期的结果,或者它将它们全部替换为“offline”,或者根本不替换任何内容


谢谢你们的帮助

我想你应该这样做:

 $query = "SELECT status FROM models";
 $result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\nQuery: $query");
 mysql_query ("UPDATE models SET status='offline' WHERE status='online'");
PS:这就是你所有的代码应该看起来像…aps的方式,不要使用mysql扩展;改为使用mysqli或PDO以及红色框和blablaxd


萨卢多斯;)

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,谢谢你的提醒和链接。。。虽然我仍然无法完全掌握“旧”技术lolAnd,但为了避免混淆,您不必在循环中运行此查询。此查询将“切换”数据库中所有记录的状态是因为$result已包含每行中“status”的每个值吗?这就是我当时被搞混的地方…@RobertRozas感谢那个人,现在它正在像一个符咒一样工作!我不介意,但我一开始就试图使用这个查询,但将它放在for循环中,并尝试使用while语句,难怪它不起作用。。。再次感谢,非常感谢!