PHP搜索查询结果顺序不起作用
我有这个代码来搜索数据库。它现在工作得很好,但我想改变它的显示顺序。下面是我的代码PHP搜索查询结果顺序不起作用,php,search,sql-order-by,Php,Search,Sql Order By,我有这个代码来搜索数据库。它现在工作得很好,但我想改变它的显示顺序。下面是我的代码 if (isset($_GET["mainSearch"])) { $condition = ''; $query = explode(" ", $_GET["mainSearch"]); foreach ($query as $text) { $condition .= "question LIKE '%".SQLite3::escapeString($text)."%' OR
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";
}
}
if(isset($\u GET[“mainSearch”]))
{
$condition='';
$query=explode(“,$\u GET[“mainSearch”]);
foreach($queryas$text)
{
$condition.=“类似“%”的问题。SQLite3::escapeString($text)。“%”或“;
}
$condition=substr($condition,0,-4);
$order=“按测验排序\u id DESC”;
$sql\u query=“从“.$condition”所在的问题中选择*;
$sql\u query\u count=“选择count(*)作为问题中的计数,“$condition.$order;
$result=$db->query($sql\u query);
$resultCount=$db->querySingle($sql\u query\u count);
如果($resultCount>0)
{
如果($结果)
{
而($row=$result->fetchArray(SQLITE3_ASSOC))
{
回声'
“.$row[“问题”]”
“.$row[“应答”]”
';
}
}
}
其他的
{
回显“未找到结果”;
}
}
我希望结果显示的顺序是从下到上。由于当前代码不起作用,请说明如何正确添加此字符串。在此字符串中留出1个空格
$order = " ORDER BY quiz_id DESC ";
它不会显示给您,因为如果您回显您的查询,它将显示如下
SELECT COUNT(*) as count FROM questions WHERE question LIKE '%test%'ORDER BY quiz_id DESC
您可以在这个echo查询中看到,ORDER和%test%
这样做会对你有帮助的
查询空间问题。你能试试这个查询吗
在count()查询中输入order by,实际上没有什么作用
$sql_query = "SELECT * FROM questions WHERE " . $condition;
$sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition . $order;
试一试
您的
$order
仅在计数查询中。添加到您的$sql\u查询中
$sql_query = "SELECT * FROM questions WHERE " . $condition . ' '. $order;
您遇到了什么问题?@urfusion它只是没有重新排序。@AlivetoDie对自己感到惊讶,因为错误报告在
echo
您的查询上,并在phpmyadmin
中运行它。看看你得到的是对还是错你对空间的看法是对的,但是搜索结果仍然没有重新排序。甚至当我在$order中添加一个限制1时,它也不会限制结果。如果你能添加一些关于你所做的更改以及为什么它会有帮助的评论,那么你的答案会更有用。
$sql_query = "SELECT * FROM questions WHERE " . $condition. ' '. $order;
$sql_query_count = "SELECT COUNT(*) as count FROM questions WHERE " . $condition ;
$sql_query = "SELECT * FROM questions WHERE " . $condition . ' '. $order;