gpt4 book ai didi

php - Joomla 中的 mysql 下一个和 orderby 中的上一个 SQL 语句

转载 作者:可可西里 更新时间:2023-11-01 07:45:26 25 4
gpt4 key购买 nike

我知道转义不正确,但我正在尝试编写上一个/下一个查询以获取订单中的下一个 ID 和上一个 ID,但我的输出与 phpmyadmin 的排序不匹配,它应该匹配。我只写了“下一个”,然后用相反的条件写上一个。此查询似乎为我提供了订单中下一个最高 ID 值编号...我需要订单索引中的下一个或上一个...有人可以帮忙吗?

$db = JFactory::getDBO();
$query = "SELECT image_id FROM #__jxgallery_images WHERE image_id >".$currentid."' ORDER BY '".$ordering." ".$direction." LIMIT 1";
// Executes the current SQL query string.
$db->setQuery($query);
// returns the array of database objects
$list = $db->loadObjectList();
// create the list of ids
foreach ($list as $item) {
$next = $item->image_id;
echo $next.'<br/>';
}
echo 'The next ID in this sort state is&nbsp;'.$next.'<br />';
?>

这是 phpmyadmin 是对的...

SELECT * FROM `jos_jxgallery_images` 
ORDER BY `jos_jxgallery_images`.`hits` DESC
LIMIT 0 , 30

我现在已经在我的代码中匹配了这个查询以获得相同的结果。我的变量填充了我的子句中的 ($ordering) 'hits' 字段和 'desc' ($direction)。那很好用。 image_ids 和命中率并不特殊……只是数字。当命中被排序时,image_ids resored 匹配。关于字段中的内容,我不需要 image_id 的下一个值。我需要下一行或上一行,无论值如何,基于我插件的当前 image_id。

这些是实际的 image_id LIMIT 5,并且按命中字段降序排列:

52791 
52801
52781
52771
52581`

现在,如果我正在查看的当前图像的 ID 为 52791,则上一张应该为空,下一张应该为 52801。我认为我的查询正在做的是给我一个更高值数字的 image_id 作为“下一个”,因为这是下一个最高值的 image_id,而不是下一行。我明白为什么在查询中,我要求大于...但我只需要下一行

最佳答案

我认为问题在于您的 WHERE 条件:WHERE image_id >".$currentid."'

如果我明白你想做什么,一种方法是这样的:

$query = "SELECT image_id FROM `#__jxgallery_images` ORDER BY ".$ordering." ".$direction." LIMIT 2";

$db->setQuery($query);

$list = $db->loadObjectList();

$next_item = $list[1]->image_id;

请注意,WHERE 条件已从查询中删除,我还将 LIMIT 1 更改为 LIMIT 2。这样,查询基本上会返回您的最高值和下一个最高“命中”值的值。

希望对您有所帮助。

关于php - Joomla 中的 mysql 下一个和 orderby 中的上一个 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11800183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com