我正在创建一个考勤PHP脚本。我从在MySQL数据库中存储数据开始,并使用不同的表进行打入/打出,休息,午餐/晚餐休息。
前面提到的每个伤亡人员都有一个表格,表格的结构如下:
ID, start, end, flag
我已经尝试使用下面的foreach
代码来执行此操作,但未成功!
foreach ($total as $key => $row) {
$start[$key] = $row['start'];
}
$final = array_multisort($start, SORT_DESC, $total);
echo $final;
这是我用2个SELECT MySQL查询所做的代码
$result = mysqli_query($db, "SELECT * FROM time WHERE username =
'$user_check' ORDER BY start DESC");
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
} $db->next_result();
$result = mysqli_query($db, "SELECT * FROM break WHERE username =
'$user_check' ORDER BY start DESC");
$data2 = array();
while ($row = mysqli_fetch_assoc($result)) {
$data2[] = $row;
}
$total = array_merge ($data, $data2);
我希望这2个查询中有1个数组按DESC
排序start
,因为我将使用该数组以DESC
顺序填充表。
答案 0 :(得分:1)
在查询中使用UNION ALL
,而不是合并数组。让数据库为您完成工作:
SELECT * FROM
(SELECT * FROM time WHERE username = '$user_check'
UNION ALL
SELECT * FROM break WHERE username = '$user_check'
) ORDER BY start DESC
PS:您的代码容易受到SQL注入的攻击。您应该改用准备好的语句。