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