Мне нужна помощь в запросе mysqli. У меня есть таблица, которая содержит пользовательские поля, карты, действие ... как такПолучить последние значения n отдельных полей
id user card action time
1 1 1 1 5
2 1 1 2 6
3 1 1 3 7
4 2 1 1 8
мне нужно получить массив 10 последних пользователей со всеми их действиями, как и
array(
2 => array(1),
1 => array(1,2,3)
)
Я пробовал использовать разные, но он возвращает только одно действие для каждого пользователя и делает несколько запросов для него, вероятно, не лучшим решением, я не могу придумать что-нибудь еще, чтобы попробовать. Возможно, комбинированный запрос необходим, но я не могу понять, как это сделать.
Спасибо!
Хорошо, используя справку, я сделал свой собственный запрос, но по какой-то причине он не может выдержать наибольшее значение времени, все остальное работает. http://sqlfiddle.com/#!2/68751d/1
$m = new_m();
if ($s = $m -> prepare("SELECT user, group_concat(action) as actions, time FROM cards_actions_data WHERE card=? GROUP BY user ORDER BY time DESC LIMIT 0, 10")) {
$s -> bind_param('i', $card);
$s -> execute();
$s -> bind_result($user,$actions,$time);
while($s -> fetch()){
$users[$user]['time'] = $time;
$users[$user]['actions'] = $actions;
}
$s -> close();
}
pre($users);
pre($m);
$m -> close();
return $users;
я попытался с помощью различных, но он возвращает только одно действие для каждого пользователя, я не могу думать ни о чем другом, чтобы попробовать ... – user1365447
Как вы определяете «* последний пользователи * "? – eggyal
Извините, моя ошибка, у меня также есть поле времени для каждого действия пользователя – user1365447