Почему я получаю "Идентификатор ресурса №4" при применении print_r() к массиву в PHP?

Возможный дубликат:
Как "эхо" "Идентификатор ресурса №6" из ответа MySql в PHP?

Ниже приведен код:

$result=mysql_query("select * from choices where a_id='$taskid'")or die(mysql_error());
print_r($result);

Я получаю "Идентификатор ресурса №4", любую идею?

После добавления

while($row=mysql_fetch_assoc($result))
{ print_r($row); }

Я только что получил []

Что не так?

Ответы

Ответ 1

Вы пытаетесь напечатать переменную ресурса mysql вместо значений, содержащихся в ресурсе, который он ссылается. Сначала вы должны попытаться извлечь полученные значения с помощью функции, такой как mysql_fetch_assoc().

Вы также можете попробовать mysql_fetch_array() или mysql_fetch_row(), но я считаю, что ассоциативные массивы довольно приятны, поскольку они позволяют вам получать доступ к своим значениям по имени поля, как в примере Майка.

Ответ 2

mysql_query() не возвращает массив как описанный в руководстве. Используйте mysql_fetch_array(), mysql_fetch_assoc() или mysql_fetch_row() с помощью $result. См. Ссылку выше для получения дополнительной информации о том, как манипулировать результатами запроса.

$result = mysql_query('SELECT * FROM table');
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

Ответ 3

$result - это переменная ресурса, возвращаемая mysql_query. Подробнее о переменных ресурсов: http://php.net/manual/en/language.types.resource.php

Вы должны использовать другие функции, такие как mysql_fetch_array() или mysql_fetch_assoc(), чтобы получить массив результатов запроса.

$resultset = array();
$result=mysql_query("select * from choices where a_id='$taskid'") or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
  $resultset[] = $row; // fetch each row...
}
mysql_free_result($result); // optional though...

print_r($resultset);

См:

http://php.net/manual/en/function.mysql-fetch-array.php
http://php.net/manual/en/function.mysql-fetch-assoc.php
http://php.net/manual/en/function.mysql-query.php

Ответ 4

Ресурсы - это специальные типы переменных, используемые PHP для отслеживания внешних ресурсов, таких как соединения с базой данных, файловые дескрипторы, сокеты и т.д.