我有这段代码(参见下文)以ASC顺序显示mysql的结果
function showMenu(){
global $con; // SIMPLY ADD THIS LINE
$result = mysqli_query($con,"SELECT * FROM user_menu ORDER BY key ASC");
$menu = '<ul class="nav navbar-nav">';
while($row = mysqli_fetch_array($result))
{
$menu .= '<li class="' . $row['status'] . '"><a href="' . $row['url'] . '" class="extend" title="' . $row['url'] . '">' . $row['name'] . '</a></li>';
}
$menu .= '</ul>';
return $menu;
}
但我得到一个错误说“警告:mysqli_fetch_array()期望参数1为mysqli_result,布尔值在”并且它指向第38行并且第38行是“while($ row = mysqli_fetch_array($ result))”
你可以看到我试图按键获取ASC顺序的结果,而键行包含数字,如0 1 2 3 4,所以结果应该按照数字顺序显示。
我怎么能突袭这个错误?想法,建议和建议请告诉我。提前谢谢。
答案 0 :(得分:1)
尝试使用反引号转义key
列名:
SELECT * FROM user_menu ORDER BY `key` ASC;
答案 1 :(得分:0)
Key是MySQL中的保留字。您可以看到列表here.
这意味着你需要逃避它:
$result = mysqli_query($con,"SELECT * FROM user_menu ORDER BY `key` ASC");
如果您控制数据库,则应更改列的名称。避免使用保留字作为标识符。