PHP函数无序输出数据
我编写了一个函数,用于查询数据库,以了解使用会话中的用户ID登录的特定用户角色。但是当我去测试它的时候。它输出正确的数据,但不在正确的位置。例如,当我与一个用户名为“Fred12”的用户登录时,它会显示“您好,您的角色在上面,它在一个长字符串中包含用户角色。见附件截图。角色应与其他所有角色位于同一行。下面我包括了我的函数和出现问题文本的页面的代码。我已经用同样的代码发布了其他问题,正如我在讨论这一点之前遇到的一些其他问题一样 功能PHP函数无序输出数据,php,function,Php,Function,我编写了一个函数,用于查询数据库,以了解使用会话中的用户ID登录的特定用户角色。但是当我去测试它的时候。它输出正确的数据,但不在正确的位置。例如,当我与一个用户名为“Fred12”的用户登录时,它会显示“您好,您的角色在上面,它在一个长字符串中包含用户角色。见附件截图。角色应与其他所有角色位于同一行。下面我包括了我的函数和出现问题文本的页面的代码。我已经用同样的代码发布了其他问题,正如我在讨论这一点之前遇到的一些其他问题一样 功能 function getRoleName($conn, $id)
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
索引
<?php
include_once 'header.php';
include_once 'includes/dbh.inc.php';
?>
<?php
if (isset($_SESSION["useruid"]))
{
echo "<p>Hello there " . $_SESSION["useruid"]. " your roles are " . getRoleName($conn, $_SESSION["userid"])."</p>";
}//end isset
?>
<?php
include_once 'footer.php';
?>
当您这样做时
echo "<p>Hello there " . $_SESSION["useruid"]. " your roles are " . getRoleName($conn, $_SESSION["userid"])."</p>";
$tmp = "<p>Hello there " . $_SESSION["useruid"]. " your roles are " . getRoleName($conn, $_SESSION["userid"])."</p>";
echo $tmp;
function getRoleName($conn, $id)
{
$roles = [];
$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) {
$roles[] = $value
}
}else{
$roles[] = "no role!";
}//end else
}//end while
}else{
throw new Exception('JSP says go away!');
}//end if numrows
return $roles;
}
echo "<p>Hello there " . $_SESSION["useruid"]. " your roles are " . implode(",", getRoleName($conn, $_SESSION["userid"]))."</p>";