【问题标题】:How to fetch MySQLi data order by array values?如何按数组值获取 MySQLi 数据顺序?
【发布时间】:2021-09-10 13:34:42
【问题描述】:

我创建了一个数组,用于从 MySQL 服务器获取数据。

$ids = array(249853, 245549, 249851, 245552, 245551, 249854, 245550, 282445, 261747, 249852, 222398, 248072, 248390, 272473, 219212, 234140, 249815, 241089, 271940, 274940);

$sorted_ids = implode($ids, ",");

使用 $sorted_ids 获取数据,这是要检索的 ID,但它是按 ID 升序检索数据

$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids})";
$result = mysqli_query($connection, $sql);

我尝试过使用 ==,但它只显示与其他记录匹配的索引。

$i = 0;
while($row = mysqli_fetch_assoc($result)) {
    if( $ids[$i] == $row['ID'] ) {
        echo $row['ID']."<br>";

        $i++;
    }
}

如果两个索引都不匹配其他记录,则显示记录。

如何通过 $ids 数组列表显示记录?

【问题讨论】:

  • 你真正想要达到什么目的?如您所说,您的代码将打印出您检索到的每个 ID,当它与您的数组中的 ID 匹配时...您是否希望按照数组中 ID 的顺序打印数据?
  • @Zachary 是的,完全正确
  • @Zachary 我想按数组中 ID 的顺序打印数据

标签: php mysql arrays sorting custom-sort


【解决方案1】:

做你想做的最简单的方法是在你的 SQL 中排序

$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids}) ORDER BY FIELD(id, {$sorted_ids})";

应该做的伎俩

【讨论】:

  • 完全按照数组值排序数据,谢谢
猜你喜欢
  • 1970-01-01
  • 2020-02-16
  • 2020-03-03
  • 1970-01-01
  • 2018-02-01
  • 2017-03-03
  • 1970-01-01
  • 2021-08-09
  • 2021-12-08
相关资源
最近更新 更多