从UserSpice中的DB获取数据

时间:2016-03-14 03:37:48

标签: php mysql database

我是PHP和Mysql的新手,如果我看起来很傻,请原谅我

我正致力于通过UserSpice Framework制作网络应用。

我的查询是我需要显示登录用户的角色。就像他是管理员一样,然后以管理员身份回复

我从users表中获取登录用户的Permission id,并将其与Permission表中的权限ID进行比较,并尝试从权限表中获取角色的名称。但它显示以下错误。

Notice: Array to string conversion in C:\xampp\htdocs\***\account.php on line 477 
Array 

我的查询如下

<?php 
$query =$db->query("select name from permission where permission.id=users.permissions"); 
$results = $query->results(); 
echo $results; 
?>

有关信息:

权限表有两个字段id和name。

Users表有很多字段,其中id是其中一个,其id与权限表中的id值相同。

3 个答案:

答案 0 :(得分:2)

好的,所以我之前从未见过User Spice,但它看起来像是基于PDO。

正在发生的事情是$ query-&gt; results()给你一个数组(从数据库返回的记录)数组(并且每个记录都是一个字段数组),即使你应该回来一个来自一条记录的字段。使用此特定功能,就像电子表格一样,无论您是填充了一个还是10000个单元格,您都需要指定该值所在的列(字段)和行(记录),然后才能使用它。您不能只回显一个数组数组,因此Array to string转换通知。

听起来有些基本原则你可能应该加以研究。我没有给你我的通用建议,而是查看他们的DB类视频教程(http://www.userspice.com/documentation-db-class-2/)的第3部分,不仅要保护其中的一些基础知识,还要了解如何按照这种方式做事。你的框架希望你这样做。如果您没有像创作者想要的那样使用该工具,这些事情通常会更加困难。

答案 1 :(得分:1)

我终于得到了所需的输出,所以认为它可以帮助别人,所以我回答了我自己的问题。

<?php
$query = $db->query("SELECT * FROM user_permission_matches WHERE user_id = ?", array($user->data()->id));
$x = $query->results(true); //dump($x); 
foreach ($x as $y){ //dump($y); 
$perm_id=$y["permission_id"]; 
$query = $db->query("SELECT * FROM permission WHERE id = ?", array($perm_id)); 
$z = $query->results(true); //dump($z[0]); 
$perm_name=$z[0]["name"]; 
echo $perm_name.'<br/>';; 
}
?>

答案 2 :(得分:0)

我认为这是你正在寻找的......

$sql= "select name from permission where id=users.permissions";
$rslt = $conn->query($sql);

foreach($rslt as $newArray){
    $roleName = $newArray['name'];
    echo "$roleName<br>";
}