我尝试运行一些PHP来根据ID搜索表2,如果ID存在,则返回该行的数据。
我的结构是这样的
用户登录- ID||用户名||电子邮件||通过||创建日期
user_details - ID(与上述ID相同)||用户名||姓氏||地址是...
对于管理面板,我试图显示表1中的用户“用户名”,如果他们没有完成完全注册。因此,如果他们的ID不在表2中,则显示表1中的用户名。
我还在学习,我知道我的代码不是正确的方法。它确实有效,但我觉得它很草率,而且我很难找到比较两个表的最佳方法的资源。
//在数据库中搜寻user_details数据表中的id,如果没有,则传回username。
$userID = $_SESSION['$userID'];
// PDO Prepaired prepair and execute
$navBarsql = 'SELECT * FROM user_details WHERE user_login_ID = :user_login_ID;';
$stmt = $pdo->prepare($navBarsql);
$stmt->execute([
'user_login_ID' => $userID,
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($row){
echo $row['userFname'] . " " . $row['userLName'];
}else{
// PDO Prepaired prepair and execute
$navBarsql = 'SELECT * FROM user_login WHERE id = :id;';
$stmt = $pdo->prepare($navBarsql);
$stmt->execute([
'id' => $userID,
]);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// search user db for username
echo ucfirst($row['username']);
}
字符串
我看到过一些疯狂的长sql语句,看起来你可以在查询中做到这一点,但我的尝试没有得到任何地方。
非常感谢您的帮助!
1条答案
按热度按时间lmvvr0a81#
使用
LEFT JOIN
将它们合并组合成一个查询。如果user_details
中没有行,则这些列将是NULL
。字符串