我正在尝试创建一个升级脚本,但某处似乎是一个错误,导致 while 循环永无止境。
我想要做的是使用升级代码的结果设置一个数据库字段。因此我有 2 个 while 循环。第一个循环是遍历所有 user_id,第二个 while 循环是计算每个用户填写的所有配置文件字段的百分比。
我想这是一个逻辑错误,因为如果我通过提供确切的 user_id 在没有第一个 while 循环的情况下运行升级代码,它工作正常。或者可能是问题,一些user_id不再存在?
请看一下代码:
$count_userid = 1;
while($count_userid < 10000)
{
// profile percentage
$resultpercentage = mysql_query("SELECT profilevalue_1, profilevalue_2, profilevalue_3 FROM table_profilevalues WHERE profilevalue_user_id = '$count_userid' LIMIT 1");
while ($row = mysql_fetch_row($resultpercentage)) {
$empty_count = 0;
$count = count($row);
for ($i = 0; $i < $count; $i++)
if ($row[$i] === '' || $row[$i] === '-1' || $row[$i] === 'NULL')
$empty_count++;
$profile_percent_user = ((int) (100 * (1 - $empty_count / ($count - 1))));
// SAVE PROFILE PERCENTAGE
$profile_percentage_query = "UPDATE table_users SET user_profilepercentage='$profile_percent_user' WHERE user_id='$count_userid' LIMIT 1";
$database->database_query($profile_percentage_query);
}
$count_userid++;
}
有人在这里看到问题吗?
此致