我目前正在尝试建立自定义可排序列表。无需过多讨论,因为这将成为一个很大的帖子,我想使用PHP foreach函数显示列表。
我目前有
$video_id = $row['videos'];
$res = preg_replace("/[^0-9,.]/", "",$video_id);
$exclude = explode(',', $res);
} ?>
....
<ul id="sortable2" class="connectedSortable">
<?php foreach ($video_list as $key => $item): ?>
<?php if(in_array($item['id'], $exclude)){ ?>
<li id="video-<?php echo $item['id'] ?>"><?php echo $item['id'],
$item['title'] ?></li>
<?php } ?>
<?php endforeach; ?>
</ul>
这会从数据库中生成项目列表,但不包括具有ID的项目的数组,该ID也将从另一个表中获取。
在此示例中,它将仅显示ID为3,4和2的视频。所有视频均按预期工作。我的问题是,一旦我重新排序了项目并刷新了它们按数字顺序加载的页面。我需要按指定的顺序(在此示例中为3,4和2)加载它们。
任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
我认为您要查找的是ORDER BY FIELD(MySql),这使您可以按特定方式按字段排序。
我需要按照指定的顺序(在此示例中为3,4和2)加载它们。
听起来很适合我!
例如
SELECT * FROM table WHERE id IN(3,4,2) ORDER BY FIELD(id, 3,4,2)
这将从表中选择ID在列表中的行中,然后按照ID排列结果的顺序,按照ID的顺序排列,依次是3、4、2。
排除具有ID的项目
这可能会引起一些问题,“字段顺序”假设您至少知道该字段中的某些值。排除意味着您知道自己不需要什么,但不一定知道您想要什么,如果那是有道理的。
也许这不是问题,我没有关于您的特定用例的足够信息来确定这一点,所以我只是在提起它作为警告。
谢谢!