我对这个非常简单的数据库查询有疑问。开头的 if 条件为 true 并且有效。
问题出在里面的 if/if/else 上。第二个语句,当事件用户有一些连接,但他正在访问的个人资料没有时,则有效。结果是“邀请加入你的团队”。
但是,如果第一个自然状态为真,则当事件用户和个人资料所有者都没有连接时,我的查询将不起作用。它总是会导致 else 语句(“加入船员”),只有当配置文件所有者至少有一个连接($countProfileCon!== 0)时才会发生这种情况,在这种情况下,事件的连接数并不重要用户有。
我不明白为什么。
if ($countCurrent==0 && $countFormer==0) {
$activeConnectionQuery = $DBcon->query("SELECT * FROM tbl_current_userconnections WHERE user_id=".$_SESSION['userSession']);
$countActiveCon=$activeConnectionQuery->num_rows;
$profileConnectionQuery = $DBcon->query("SELECT * FROM tbl_current_userconnections WHERE user_id=".$_GET['user']);
$countProfileCon=$profileConnectionQuery->num_rows;
if ($countActiveCon==0 && $countProfileCon==0) {
$connect = "<p>create a crew</p>";
}
if ($countActiveCon!==0 && $countProfileCon==0) {
$connect = "<p>invite to your crew</p>";
}
else {
$connect = "<p>join crew</p>";
}
}
当问题发生时,tbl_current_userconnections 看起来像这样:
user_id connection_id
---------------- ----------------
(显然它是空的)
最佳答案
我认为您在第二个条件中缺少“else”关键字。
if ($countActiveCon==0 && $countProfileCon==0) {
$connect = "<p>create a crew</p>";
}
elseif ($countActiveCon!==0 && $countProfileCon==0) {
$connect = "<p>invite to your crew</p>";
}
else {
$connect = "<p>join crew</p>";
}
你的第一个条件很好。但由于缺少 elseif 它会覆盖您的变量,因为第二个条件被评估为 false。
关于php - 简单数据库查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170717/