带有MySQL结果的PHP未定义索引

时间:2013-11-15 02:31:49

标签: php mysql loops

我有一个脚本在MySQL的用户数据库中将重复的名称重命名为“$ name2”但由于某种原因,我为每个重复的用户名收到错误“未定义的索引”,并且未使用“foreach”循环。代码如下:

$result = mysql_query("select name, count(*) cnt from users group by name having cnt > 1 and name!=''");
$rowsCnt = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
    $rowsCnt[ $row['name'] ]++;
}

foreach($rows as $index => $row) {
                mysql_query("UPDATE users SET duplicate=1, name = '".mysql_real_escape_string($row['name'])."2' WHERE name = '".mysql_real_escape_string($row['name'])."'"$
}

1 个答案:

答案 0 :(得分:2)

由于以下行而抛出未定义的索引:

$rowsCnt[$row['name']]++;

$ row ['name']的值不代表$ rowsCnt数组中的任何项目,换句话说,数组$ rowCnt中没有名称为$ row ['name']的索引。

附注:您可能想要重写代码,因为它可以用更好的方式编写。