我有一个用户和作品集表,我希望在其中显示用户的姓名和作品集标题,但是该名称只能使用用户 ID 检索,我不知道如何在 PHP 上获取信息以到达其他数据库表。
USER
id | user_fname | user_lname
01 | John | Smith
02 | Katherine | Blair
PORTFOLIO
id | portfolio_title | portfolio_user_id
19 | ClassRoom | 02
20 | RemoteIsland | 02
21 | MilkTown | 01
现在在我的 PHP 文件中,
if( $request->has('s_c'))
{
$categoryid = $request->s_c;
$results = DB::table('portfolio')
->leftJoin('portfolio_images', 'portfolio.id', 'portfolio_images.p_portfolio_id')
->where('portfolio_user_id', 'like', "%".$search_text."%")
->orwhere('portfolio_title', 'like', "%".$search_text."%")
->groupBy('portfolio.id')
->orderBy('portfolio.portfolio_added_date', 'DESC')
->paginate(12);
if($categoryid != '')
$results = $results->where('portfolio_category', $categoryid);
}
else
{
$results = DB::table('portfolio')
->leftJoin('portfolio_images', 'portfolio.id', 'portfolio_images.p_portfolio_id')
->where('portfolio_user_id', 'like', "%".$search_text."%")
->orwhere('portfolio_title', 'like', "%".$search_text."%")
->groupBy('portfolio.id')
->orderBy('portfolio.portfolio_added_date', 'DESC')
->paginate(12);
}
return view('./frontend/portfoliotest', [
'categories' => $categories,
'results' => $results
]);
这将显示它,例如
02 ClassRoom
02 RemoteIsland
01 MilkTown
但我希望它也能进入用户表以获取
Katherine Blair ClassRoom
Katherine Blair RemoteIsland
John Smith MilkTown
我使用 $result 来显示 PORTFOLIO 表中的信息,但是如何获取用户的 fname 和 lname 而不是 ID 的显示
最佳答案
您应该加入用户表并选择您需要的属性。 您可以将这段代码添加到查询中:
->join('users', 'users.id', '=', 'portfolio.portfolio_user_id')
->select('users.*', 'portfolio.portfolio_title')
正如 select 方法所示,结果为 user_fname、user_lname、portfolio_title
关于php - MySQL 在 PHP 上使用外键显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800965/