Как отсортировать выборку из двух разных таблиц БД
подскажите как отсортировать массив по дате и времени? [timestamp]
Array
(
[id] => 1
[timestamp] => 2024-05-29 12:46:41
[amount] => 1
[text] => Администратор Antisocial_Insomnia заблокировал Test_Ban офф. на 31 дней. Причина: 1
)
Array
(
[id] => 4
[timestamp] => 2024-04-29 12:46:54
[amount] => 1
[text] => Администратор Antisocial_Insomnia заблокировал Test_Ban офф. на 31 дней. Причина: 1
)
Array
(
[id] => 3
[timestamp] => 2024-04-29 12:46:53
[amount] => 1
[text] => Администратор Antisocial_Insomnia заблокировал Test_Ban офф. на 31 дней. Причина: 1
)
Array
(
[id] => 2
[timestamp] => 2024-04-29 12:46:45
[amount] => 1
[text] => Администратор Antisocial_Insomnia заблокировал Test_Ban офф. на 31 дней. Причина: 1
)
Array
(
[id] => 1
[timestamp] => 2024-04-30 12:30:42
[amount] => 1
[text] => [A] Alex_Line разбанил игрока Test_Ban
)
PHP код
<?php
require_once("includes/connection.php");
$sqltest = "SELECT * FROM logs_offban WHERE `text` LIKE '%Test_Ban%' ORDER BY timestamp DESC LIMIT 0,200; SELECT * FROM logs_unban WHERE `text` LIKE '%Test_Ban%' ORDER BY timestamp DESC LIMIT 0,200;";
$result=mysqli_multi_query($con,$sqltest);
do {
if ($result = mysqli_store_result($con)) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo '<pre>';
print_r($row);
echo '</pre>';
}
}
} while (mysqli_next_result($con));
?>
Ответы (1 шт):
Автор решения: Alex Line
→ Ссылка
Спасибо комментатору с ником SwaD
Признателен и благодарен за подсказанный UNION ALL, итоговый вариант сделал вот так.
$sqlt = "SELECT * FROM logs_offban WHERE `text` LIKE '%Test_Ban%' UNION ALL SELECT * FROM logs_unban WHERE `text` LIKE '%Test_Ban%' ORDER BY timestamp DESC LIMIT 0,200;";
$result=mysqli_query($con,$sqlt);
$a = mysqli_fetch_all($result, MYSQLI_ASSOC);
usort($a, function($c, $b) {
return strtotime($c['timestamp']) < strtotime($b['timestamp']);
});
foreach($a as $item):
if($item['timestamp'] != 0) {
echo '<p>'.$item['timestamp'].' - '.$item['text'].'</p></pre>';
} endforeach;