Почему я не получаю все результаты в своем коде запроса? - PullRequest
0 голосов
/ 09 августа 2011

У меня проблема. Следующий код прекрасно работает на моем локальном компьютере, но на живом сервере он не работает должным образом ... Я должен был получить две строки, но на живом сервере я получаю только 1 результат.

$query = mysql_query('SELECT * FROM `wspm_t_colors`');
$result = mysql_fetch_object($query);
print json_encode($result);

В чем может быть ошибка? ...

Ответы [ 4 ]

2 голосов
/ 09 августа 2011

Я не могу поверить, что вы получите две строки с этим, чтобы получить все строки, которые вы должны сделать следующим образом:

$query = mysql_query('SELECT * FROM `wspm_t_colors`');
while($result = mysql_fetch_object($query))
{
    print json_encode($result);
}

mysql_fetch_object / array / row всегда возвращает только одну строку и перемещает указатель наследующая строка, если следующей строки нет, возвращает false.

1 голос
/ 09 августа 2011

Ваш код получает только одну строку.Функция mysql_fetch_object() возвращает только одну строку.Вам нужно попробовать что-то вроде этого:

$query = mysql_query('SELECT * FROM `wspm_t_colors`');
$json = array();
while ($result = mysql_fetch_object($query))
    $json[] = $result;
print json_encode($json);
1 голос
/ 09 августа 2011

Я думаю, это потому, что mysql_fetch_object возвращает только один результат строки. Вам нужно что-то вроде этого:

$query = mysql_query('SELECT * FROM `wspm_t_colors`');
while($row = mysql_fetch_array($query))
{
   \\access each result here
}
0 голосов
/ 09 августа 2011

Я не вижу, как вы можете иметь две строки в локальном

$array = array();
$query = mysql_query('SELECT * FROM `wspm_t_colors`');
while($result = mysql_fetch_object($query))
{
    $array[] = $result;
}
print json_encode($array);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...