【问题标题】:MySQL issue with RAND() and 1 DESC?RAND() 和 1 DESC 的 MySQL 问题?
【发布时间】:2015-05-02 17:43:06
【问题描述】:

我使用数据库创建了一个画廊。所有图像都随机显示在主页上。现在我需要在导航栏中添加一个新的“最新”index.php/latest.php 类别。

我正在使用无限滚动和一个小技巧来随机订购$rand=date("i");

问题: ORDER BY 1 DESC 不适用于index.php/latest.php,因为我在主页上随机排序。如何在不更改主页顺序的情况下在最新页面上按降序排序?

index.php

<?php

include ("sqli.php");
$rand=date("i");

$seed=($rand);
$per_page = 9;
if (isset($_GET["page"])) {

    $page = $_GET["page"];
}
else {
    $page=1;
}

$start_from = ($page-1) * $per_page;

$query = "SELECT * FROM data ORDER BY RAND($rand) LIMIT $start_from, $per_page";

$result = mysqli_query ($con, $query);

<?php while ($row = mysqli_fetch_array($result)) { ?>

?>

<div id="gallery here"></div>

<?php> } ?>

最新的.php

<?php

include ("sqli.php");
$per_page = 9;
if (isset($_GET["page"])) {

    $page = $_GET["page"];
}
else {
    $page=1;
}

$start_from = ($page-1) * $per_page;

$query = "SELECT * FROM data ORDER BY 1 DESC LIMIT $start_from, $per_page";

$result = mysqli_query ($con, $query);
?>

<?php while ($row = mysqli_fetch_array($result)) { ?>

?>

<div id="gallery here"></div>

<?php> } ?>

【问题讨论】:

    标签: php mysql database mysqli sql-order-by


    【解决方案1】:

    您必须在 last.php 中按 createdAt 字段(按您的日期字段)设置顺序:

    $query = "SELECT * FROM data ORDER BY createdAt DESC LIMIT $start_from, $per_page";
    

    【讨论】:

    • 警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result。现在我对&lt;?php while ($row = mysqli_fetch_array($result)) { ?&gt; 这一行有一个 php 警告。
    • 您的数据库表中是否有“createdAt”字段?请尝试在保存创建日期的字段名称上更改字段名称“createdAt”。
    • 是的@Anna 我仍然有同样的问题。如果我将主页更改为ORDER BY 1 DESC,Latest.php 页面可以正常工作。但是我需要通过在最新页面上降序而不更改主页顺序来进行排序。
    【解决方案2】:

    这个问题被我解决了。此问题与无限滚动导航有关。我希望我的 PHP 代码对某人有所帮助。您可以将此 PHP 代码用于jQuery Infinite-Scroll 分页。如果您有任何问题,我在这里。谢谢大家。

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      相关资源
      最近更新 更多