2

所以我的问题有点令人困惑。我不是一个非常强大的编码器。
我希望这是有道理的。这个网站是别人的作品,所以我正在尝试添加它。

我正在尝试制作一个从数据库中提取结果的下拉框。如果有任何问题,请告诉我。除了空白下拉框外,我似乎无法得到任何结果。

(aps2_get_user_role($_SESSION['uid']) == APS_ADMIN) {
                    $return .= '<br/><select>';
                    $selvalue .= 1001;
                    $result5 .= @mysql_query("SELECT * FROM aps2_users WHERE role = '1001'");


                    while($urow = @mysql_fetch_array($result5, MYSQL_ARRAY)){
                        $return .= '<option value="test">test</option>';
                        $usrid .= $urow['uid'];
                        $usrname .= $urow['username'];
                        $return .= '<option value="' . $usrid . '">"' . $usrname . '"</option>';
                    }
                $return .= '</select>';
                $return .= $result5;
                }
4

2 回答 2

1

在上面的代码中有几件事我注意到你应该更正它

  • $selvalue .= 1001;我还没有看到这个变量的用法
  • @之前@mysql_query()不是一个好习惯,为什么只用 if else 就可以看到查询执行成功或抛出错误
  • $result5 .=@mysql_query(...)执行查询结果时无需串联
  • @mysql_fetch_array($result5, MYSQL_ARRAY)删除@并查看它是否引发错误
  • $return .= '<option value="test">test</option>';这真的是您在每次查询迭代中都需要这个选项吗?
  • $usrid .= $urow['uid']; $usrname .= $urow['username'];对于循环的每次迭代,新值将与前一个值连接我相信您的选择框不需要那种类型的输出
  • 最后也是主要的$return .= $result5;为什么结果 mysql_query附加了选项没有使用这个

请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-08-02T21:12:06.900 回答
1

我想你想要:

(aps2_get_user_role($_SESSION['uid']) == APS_ADMIN) {
    $return = '<br/><select>';
    $result5 = @mysql_query("SELECT * FROM aps2_users WHERE role = '1001'");

    while($urow = @mysql_fetch_array($result5, MYSQL_ARRAY)){
        $return .= '<option value="test">test</option><option value="'.$urow['uid'].'">"'.$urow['username'].'"</option>';
    }
    return ($return.'</select>');
}

但是 - 我不知道你想用第 1 行实现什么!

您正在返回 result5,它是您的代码中的查询数组,我看不到您想要的。还有赋值与附加到变量。您也不要在任何地方使用 $selvalue 变量。

如果您没有得到任何结果 - 请确保您从数据库中提取的那些字段存在于表中。

也可能值得发布将结果合并到您的 HTML 页面中的代码。

于 2013-08-02T21:00:01.287 回答