【发布时间】:2019-08-18 16:58:11
【问题描述】:
我不知道如何在 Laravel 5.8 中使用以下代码 我已经尝试过了,但我不能正常工作。
$sql = mysqli_query($db, "SELECT *, SUM(amount) AS SumBudget FROM messages GROUP BY contact_phone ORDER BY SUM(amount) DESC LIMIT 3");
$orderList = 0;
while ($data = mysqli_fetch_assoc($sql))
{
$orderList++;
$user = $data['user'];
$cost = $data['SumBudget'];
if ($orderList == 1) {
printf("%d. %s %d฿<br>", $orderList, $user, $cost);
}
else if ($orderList == 2)
{
printf("%d. %s %d฿<br>", $orderList, $user, $cost);
}
else
{
printf("%d. %s %d฿<br>", $orderList, $user, $cost);
}
}
我的代码已经试过了。
$data = DB::table('messages')
->where('phone_number', $request->phone_number)
->select(DB::raw('SUM(amount) as cost'))
->groupBy(DB::raw('contact_phone'))
->orderBy(DB::raw('SUM(amount)', 'DESC'))
->limit(3)
->get();
谁能帮帮我,谢谢。
【问题讨论】:
-
提示:您也可以在 Laraval 中使用 RAW 查询,而无需使用查询构建器。
-
是的,我使用 DB:: 然后将我的代码放在 DB:: 之后,laravel 给我错误语法错误或访问冲突:1055
-
我想我们已经谈过了。我的意思是
DB::connection()->getPdo()->query(...)应该没问题,你的 qeury 中没有用户输入。至少在顶部的示例中没有。。跨度> -
...这让我想知道为什么 laravel PHP 代码中有一个 WHERE 而不是原生 PHP/MySQL 代码..
-
.. 还有
SELECT * GROUP BY contact_phone通常不是你应该写的SQL .. MySQL Handling of GROUP BY .
标签: php mysql laravel laravel-5.8