如何按数组值顺序获取 MySQLi 数据?
How to fetch MySQLi data order by array values?
我创建了一个数组,用于从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, ",");
使用ID取回的$sorted_ids取数据,但取回的数据是按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 数组列表显示记录?
做你想做的最简单的方法是在你的 SQL
中订购它
$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids}) ORDER BY FIELD(id, {$sorted_ids})";
应该可以解决问题
我创建了一个数组,用于从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, ",");
使用ID取回的$sorted_ids取数据,但取回的数据是按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 数组列表显示记录?
做你想做的最简单的方法是在你的 SQL
中订购它$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids}) ORDER BY FIELD(id, {$sorted_ids})";
应该可以解决问题