ошибка строки php - PullRequest
       10

ошибка строки php

0 голосов
/ 13 января 2010

Я испытываю странное поведение здесь. Я использую следующий код для ссылки на API Facebook.

$query = "SELECT msg, user_id, comment_time FROM comments WHERE aid = '$aid' ORDER BY comment_time DESC";
        $result = mysql_query($query) or die("ERROR: $query.".mysql_error());
        if (mysql_num_rows($result) > 0) {
            while($row = mysql_fetch_object($result)){
                $uidval = $row->user_id;
                $posterInfo = $facebook->api_client->users_getInfo($uidval, array('name', 'pic_square_with_logo', 'profile_url'));
                $nameuser = $posterInfo[0]['name']; //this is line 50
                $pic = $posterInfo[0]['pic_square_with_logo'];
                $profile_url = $posterInfo[0]['profile_url'];

                echo '<img src="'.$pic.'" />';
                echo '<a href="'.$profile_url.'">'.$nameuser.'</a>';
                echo '<br>';
                echo $row->comment_time;
                echo '<br>';
                echo $row->msg;

            }
        }

это дает мне эту ошибку:

Fatal error: Cannot use string offset as an array in /home/amitver/public_html/roadies/comments.php on line 50

но, что удивительно, я успешно использую тот же самый код в верхней части моей страницы. почему это странное поведение. это код вверху страницы:

//connect to fB
    $uid = $user_id;
    $userInfo = $facebook->api_client->users_getInfo($user_id, array('name', 'pic_square'));
    $nameuser = $userInfo[0]['name'];
    $pic = $userInfo[0]['pic_square'];

Ответы [ 2 ]

4 голосов
/ 13 января 2010

Я думаю, что иногда theusers_getInfo возвращает массив, а в других случаях возвращает строку. Вероятно, он возвращает только простую строку, если доступен только один результат.

Попробуйте это:

$nameuser = ($posterInfo[0]) ? $posterInfo[0]['name'] : $posterInfo['name'];
2 голосов
/ 13 января 2010

это произойдет, если $ posterInfo фактически пустая строка ('').

можете ли вы var_dump ($ posterInfo) в цикле и проверить, что он делает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...