php - PHP函数在应该返回多行时只返回一行
问题描述
我写了一个 PHP 函数来显示一个人登录我的网站时的角色名称。但是,当用户具有多个角色时,它只返回一行而不是所有角色。任何帮助,将不胜感激。
getRoleName 函数
function getRoleName($conn, $id)
{
$id = $_SESSION['userid'];
$sql = "SELECT
* FROM users
INNER JOIN user_roles ON users.usersId = user_roles.user_id
INNER JOIN roles ON user_roles.role_id = roles.role_id
WHERE users.usersId = ?;";
$stmt = $conn->prepare($sql);
//$stmt -> mysqli_stmt_prepare($stmt, $sql);
$stmt -> bind_param("s", $_SESSION['userid']);
$stmt -> execute();
$result = $stmt->get_result();
if($result->num_rows > 0){
while ($row = $result->fetch_assoc()){
if ($row['role_name'] == 0) {
$array = array($row['role_name']);
foreach ($array as $value) {
echo $value;
}
}else{
echo "no role!";
}//end else
}//end while
}else{
echo "JPS Says go away from me!";
}//end if numrows
}
index.php 文件是显示角色以供用户查看的位置。
<?php
include_once 'header.php';
include_once 'includes/dbh.inc.php';
?>
<?php
if (isset($_SESSION["useruid"]))
{
echo "<p>Hello there " . $_SESSION["useruid"]. "</p>";
echo "Your roles are ".getRoleName($conn, $_SESSION["userid"]);
}//end isset
?>
<?php
include_once 'footer.php';
?>
解决方案
推荐阅读
- c# - Task.Run 不运行方法?
- apache-flink - flink 应用程序在使用来自 kafka 的消息后停止
- c# - 如何在 ASP.NET Core 上实现每个租户的数据库策略
- parsing - Haskell ReadP 解析列表中的至少一个
- reactjs - npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出
- pandas - 在熊猫中用 NaN 将列除以另一列
- swiftui - 如何删除三个点标签?
- java - java,通过扫描仪方法输入双精度值,数字返回小数错误
- android - 我需要从后台线程访问listview的适配器
- javascript - 有没有办法将 JavaScript 字符串作为某些函数执行?我正在使用 eval 但它不起作用