声明顺序以使用PHP

时间:2018-08-14 15:47:16

标签: php sql arrays foreach

我目前正在尝试建立自定义可排序列表。无需过多讨论,因为这将成为一个很大的帖子,我想使用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也将从另一个表中获取。

Screenshot of database

Screenshot of ID's to be excluded.

在此示例中,它将仅显示ID为3,4和2的视频。所有视频均按预期工作。我的问题是,一旦我重新排序了项目并刷新了它们按数字顺序加载的页面。我需要按指定的顺序(在此示例中为3,4和2)加载它们。

任何帮助将不胜感激。

谢谢

1 个答案:

答案 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的项目

这可能会引起一些问题,“字段顺序”假设您至少知道该字段中的某些值。排除意味着您知道自己不需要什么,但不一定知道您想要什么,如果那是有道理的。

也许这不是问题,我没有关于您的特定用例的足够信息来确定这一点,所以我只是在提起它作为警告。

谢谢!