当前位置: 首页 > 知识库问答 >
问题:

尝试按ASC顺序获取结果,但收到错误

红智鑫
2023-03-14

我有以下代码(参考下文)以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这样的数字,因此结果应按数字顺序显示。

如何获取此错误的raid?想法、建议和建议请让我知道。提前谢谢。

共有2个答案

秦鸿羽
2023-03-14

关键字是MySQL中的保留字。你可以在这里看到清单。

这意味着你需要逃避它:

$result = mysqli_query($con,"SELECT * FROM user_menu ORDER BY `key` ASC");

如果控制数据库,则应更改列的名称。避免使用保留字作为标识符。

吕宣
2023-03-14

尝试使用反勾号转义列名:

 SELECT * FROM user_menu ORDER BY `key` ASC;
 类似资料:
  • 我想运行几行代码,但我不确定是否有任何行会抛出错误。但是如果发生错误,我希望脚本忽略该行并继续。 一种选择是使用<code>try-catch-end TL;TR:除了为下面示例代码中的每一行编写<code>try-catch-end 示例代码: 输出: 首选输出: 相关:为什么我不应该在“try”-“catch”中包装每个块?

  • 问题内容: 当我使用IN从表中选择一组行时,例如 有一种SQL技巧可以按照IN集合中给定的顺序恢复它们吗? 因此,在示例中,假设x具有ID为23、55、44和12的行,则将按该顺序返回这四行。 问题答案:

  • //回收器和视图 //调用提取数据方法extractData(); //提取数据

  • 但是由于某种原因,当我运行我的程序时,它似乎没有完全接受输入,并且给我一个错误的答案,当按下按钮时,它给我的答案是179.0的男性和169.0的女性。 我看了一遍又一遍,似乎无法找出这个逻辑错误。这是我的代码。

  • 问题内容: 我正在使用Firebase,直到最近我都没有按字母顺序获取数据的问题。我从来没有使用过查询,我总是只使用数据快照并逐一对其进行排序。最近,在 snapVal中 ,数据并不总是按字母顺序 排列 。如何做到这一点,以便获得按字母顺序排序的数据的snapVal,就像数据库快照中的快照一样? 真实示例:有4条消息,id1-id4(按此顺序)。它们包含消息“ 1”-“ 4”。快照看起来正确。但是