【发布时间】:2020-07-14 12:38:45
【问题描述】:
其实我卡在这里,我想获取当前用户的数据和当前用户的推荐人数据和推荐人的推荐人数据。
比如A是第一个用户,B是第二个,C是第三个,D是第四个。如果用户 A 已登录,则查询应首先获取用户 A 的数据,在该数据下应该有用户 B 的数据,因为用户 B 是由用户 A 引用的,在 B 下应该有用户 C 的数据,因为用户 C 被用户 B 推荐给用户 D,依此类推。
这些所有数据都应显示在用户 A 的登录名下。我目前通过此查询仅获得 1 个推荐人数据:
$querySelect = "Select * from tbl_users where UserID = '$UID'";
$resultSelect = mysqli_query($conn,$querySelect);
$numSelect = mysqli_num_rows($resultSelect);
$FetchedSelect = mysqli_fetch_assoc($resultSelect);
if($numSelect > 0)
{
$refID = $FetchedSelect['refID'];
//some code to show the the table data...
}
$querySelect1 = "Select * from tbl_users where UserID = '$refID'";
$resultSelect1 = mysqli_query($conn,$querySelect1);
$numSelect1 = mysqli_num_rows($resultSelect1);
$FetchedSelect1 = mysqli_fetch_assoc($resultSelect1);
if($numSelect1 > 0)
{
//do some codes to show the table data
}
这样我只得到了两个用户的数据,即当前用户和当前用户的推荐人。但是我想获取我在这篇文章顶部提到的所有用户数据。我怎样才能做到这一点?
【问题讨论】:
-
添加第三个查询?
-
欢迎。也许这个答案可以帮助你?:stackoverflow.com/a/33737203/694400
-
@Wieger 这是一个很好的答案,但它并没有解决我的问题,它给了我给定用户 ID 下的数据。但我想获取我已经(当前登录的用户)的用户 ID 上侧的数据,另外,我只想获得上侧的 5 个用户。比如登录的用户id是30,查询应该得到30(登录用户)、29、28、27、26、25(上面一行都是互相的referrer)的数据。如何获取上线数据而不是下线数据?
-
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将任何数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST、$_GET或任何类型的数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
注意:object-oriented interface to
mysqli明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆,因为缺少单个i会导致麻烦。示例:$db = new mysqli(…)和$db->prepare("…")程序接口是 PHP 4 时代的产物,不应在新代码中使用。