PHP 搜索查询结果 ORDER BY 无效

PHP Search query result ORDER BY not working

我有这段代码可以搜索数据库。它现在可以完美运行,但我想更改它显示的顺序。下面是我的代码。

if (isset($_GET["mainSearch"])) 
{
  $condition = '';
  $query = explode(" ", $_GET["mainSearch"]);

  foreach ($query as $text) 
  {
      $condition .= "question LIKE '%".SQLite3::escapeString($text)."%' OR ";
  }
  $condition = substr($condition, 0, -4);


  $order = "ORDER BY quiz_id DESC";
  $sql_query = "SELECT * FROM questions WHERE " . $condition;
  $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition . $order;
  $result = $db->query($sql_query);
  $resultCount = $db->querySingle($sql_query_count);

  if ($resultCount > 0)
  {
  if ($result)
  {
      while ($row = $result->fetchArray(SQLITE3_ASSOC))
      {
           echo '<div class="quesbox_3">
            <div class="questitle">
                <h2>'.$row["question"].'</h2>
            </div>
            <div class="quesanswer">'.$row["answer"].'</div>
        </div>';
      }
  }
  }
  else
  {
      echo "No results found";
  }
}

我希望结果显示的顺序是从下到上。由于当前代码无法正常工作,请问我该如何正确添加它。

在此字符串中输入 1 space

$order = " ORDER BY quiz_id DESC ";

它没有向您显示,因为如果您回显您的查询,它就会像这样显示

SELECT COUNT(*) as count FROM questions WHERE question LIKE '%test%'ORDER BY quiz_id DESC

你可以看到在这个回显查询中 ORDER and %test%

之间没有 space

像这样对你有帮助。

Query Space issues. can you try with this query

 $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition .' '. $order;

您在 count() 查询上进行排序,实际上并没有多大作用。

$sql_query = "SELECT * FROM questions WHERE " . $condition;
  $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition . $order;

尝试

$sql_query = "SELECT * FROM questions WHERE " . $condition. ' '. $order;
  $sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition ;

您的 $order 仅在您的计数查询中。添加到您的 $sql_query

$sql_query = "SELECT * FROM questions WHERE " . $condition . ' '. $order;