Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
注意:未定义索引| PHP MySQL_Php_Mysql_Pdo - Fatal编程技术网

注意:未定义索引| PHP MySQL

注意:未定义索引| PHP MySQL,php,mysql,pdo,Php,Mysql,Pdo,我试图从MySQL中检索特定的表数据,并使用PHP显示信息。应该足够简单,可以检索数据并打印它,但只有在检索数据并尝试显示时,我才会得到未定义的索引 我正在检索信息,并根据标题中的用户名在配置文件页面中显示信息 if(isset($_GET['username'])) { $username = $_GET['username']; $profile_uid = $Wall->useriD($username); $profile_

我试图从MySQL中检索特定的表数据,并使用PHP显示信息。应该足够简单,可以检索数据并打印它,但只有在检索数据并尝试显示时,我才会得到未定义的索引

我正在检索信息,并根据标题中的用户名在配置文件页面中显示信息

if(isset($_GET['username']))
{
    $username           = $_GET['username'];
    $profile_uid        = $Wall->useriD($username);
    $profile_details    = $Wall->userDetails($profile_uid);
    $friend_count       = $profile_details['friendcount']; //issue here
} else {
    header('Location:404.php');
}
我得到了$friend_count=$profile_details['friendcount']上未定义的索引;但我不知道为什么,我相信所有的检查都是正确的,但显然不是。以下是我获取信息的方式

public function useriD($username)
{
    $sth = $this->db->prepare("SELECT uiD FROM users WHERE username = :username AND status='1'");
    $sth->execute(array(':username' => $username));

    if($sth->rowCount() == 1)
    {
        $row = $sth->fetch();
        return $row['uiD'];
    } else {
        return false;
    }
}

public function userDetails($uiD)
{
    $sth = $this->db->prepare("SELECT * FROM users WHERE uiD = :uiD AND status='1'");
    $sth->execute(array(':uiD' => $uiD));

    $data = $sth->fetchAll();
    return $data;
}

问题是当我试图显示这样的信息时,我已经做了几个小时了,我被卡住了。任何潜在客户都很好。

在您的
userDetails
功能中,修复最后一条语句:

return $data[0];

(您可能还想预先检查
$data[0]
是否存在,如果不存在,则返回
NULL
FALSE
或引发异常。)

用户详细信息
函数中,修复最后一条语句:

return $data[0];

(您可能还想预先检查
$data[0]
是否存在,如果不存在,则返回
NULL
FALSE
或抛出异常。)

由于您只对一行感兴趣,请使用
fetch()
而不是
fetchAll()


由于您只对一行感兴趣,请使用
fetch()
而不是
fetchAll()


执行
var\u转储($profile\u详细信息)
。您将看到该阵列中的可用内容。请注意,fetchAll()将返回一个数组数组,而不仅仅是一个数据行作为数组。是的,正如Marc B所说,所以它很可能是
$profile\u details[0]['friendcount']
,但一定要检查。你们是对的。谢谢你的支持。我一直想知道[0]代表什么,是加载到标题中的当前id吗?执行
var\u dump($profile\u details)
。您将看到该阵列中的可用内容。请注意,fetchAll()将返回一个数组数组,而不仅仅是一个数据行作为数组。是的,正如Marc B所说,所以它很可能是
$profile\u details[0]['friendcount']
,但一定要检查。你们是对的。谢谢你的支持。我一直想知道[0]代表什么,是加载到标题中的当前id吗?