【问题标题】:Declare order to show foreach output with PHP声明命令以使用 PHP 显示 foreach 输出
【发布时间】:2018-08-14 15:47:16
【问题描述】:

我目前正在尝试设置自定义可排序列表。由于这将成为一个非常大的帖子,因此无需过多详细说明,我想使用 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 为 3,4 和 2 的视频。这一切都按预期工作。我的问题是,一旦我重新排序了这些项目并刷新了它们按数字顺序加载的页面。我需要按照指定的顺序加载这些(本例中为 3,4 和 2)。

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • MySQL SQL Server。只标记与您的问题相关的 RDBMS!
  • 另外,不要发布您的数据图像,它们对试图为您提供帮助的志愿者没有帮助。请将您的数据发布为text
  • SQL标签可以看作是语言标签,我可以理解这种混淆。只是说。

标签: php sql arrays foreach


【解决方案1】:

我认为您正在寻找的是 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 将结果按照它们放置在那里的顺序排列,3 然后 4 然后 2。

排除具有 ID 的项目

这可能会导致一些问题,字段顺序假定您至少知道字段中的一些值。排除意味着你知道你不想要什么,但不一定知道你想要什么,如果这有意义的话。

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

谢谢!

【讨论】:

  • 这正是我所需要的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 2018-01-24
  • 2015-04-13
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多