PHP循环对循环中的每一项都给出相同的结果


PHP loop gives the same results for every item in the loop

我在自定义CMS中有一个循环,它创建了一个下拉菜单,允许我选择和更改文章的作者。

不幸的是,它不起作用,每个选项都有语法'selected',而它应该只是其中之一。

我做了什么?

 while ($row = mysql_fetch_array($rows)) {
printf ('<option value=%d',$auth_id);
if ($auth_id == $current_auth) {
    echo ' selected';
}
printf (">%s", $name);
}

$auth_id没有任何变化。您的脚本可以像这样

$auth_id = 0;
$current_auth = 1;
while ($row = mysql_fetch_array($rows)) {
  $auth_id++; // ?? change here
  printf ('<option value=%d',$auth_id);
  if ($auth_id == $current_auth) {
      echo ' selected';
  }
  printf (">%s", $row['name']);
}

您需要将$auth_id和$name替换为来自行的数据,例如$row['auth_id']或您的字段命名

看起来你没有使用$row在所有的代码,这是正确的吗?$auth_id和$current_auth自然不会改变