array_push() + 'computed*' elements in array

gruz1

Новичок
array_push() + 'computed*' elements in array

Добрый день всем участникам форума. Не пойму в чем загвоздка, но после:
PHP:
if(!is_array($this->result)) $this->result = array();
while($row = mssql_fetch_array($this->query)) {
    $this->num_rows = mssql_num_rows($this->query);
    if($this->num_rows>1) {
        array_push($this->result, $row);
    } else {
        $this->result = $row;
}
Вообщем, делается выборка из базы данных, если количество записей == 1, то возвращается одномерный массив, иначе к текущему массиву ($this->result) добавляется ассоциативный массив значений из базы данных. Так вот, в итоге, я получаю:
PHP:
Array
(
    [0] => 2
    [computed] => 2
    [1] => 1
    [computed1] => 1
    [2] => Array
        (
// Тут куча значений из таблицы
        )
)
Откуда берутся эти [computed]? :confused:
 

gruz1

Новичок
Согласись, что разбираться в цифрах менее удобно?

-~{}~ 10.01.07 07:37:

Ради интереса заменил на твой вариант, результат не заставил себя ждать:
PHP:
Array
(
    [0] => 2
    [1] => 1
    [2] => Array
        (
// Тут куча значений из таблицы
        )
)
-~{}~ 10.01.07 07:41:

cDLEON, причем работа с MSSQL
 

gruz1

Новичок
Уважаемый, cDLEON, видимо, ты не поняв проблемы, решил ответить... Не очень разумно, имхо.

Гравицапа, спасибо, изучаю
 

cDLEON

Онанист РНРСlub
gruz1
Мне кажется не очень разумно было лезть на форум, не побывав в поисковике. ИМХО.
 

gruz1

Новичок
Не волнуйся, я побывал в поисковике. Но он, к сожалению, ничего не принес. Если больше нечего сказать по теме - прошу не отписываться.

-~{}~ 10.01.07 07:55:

Гравицапа, ты считаешь, что загвоздка все-таки не в mssql_fetch_*, а в MSSQL?
 

gruz1

Новичок
Мешает тем, что необходимо писать _лишние_ проверки на этот самый 'computed' :)
Вот код с запросом к базе:
http://phpclub.ru/paste/1607
В базе 3 строки значений, результат выборки из базы:
PHP:
Array
(
    [0] => 3
    [computed] => 3
    [1] => 1
    [computed1] => 1
    [2] => Array
        (
// --- skipped
        )
    [3] => Array
        (
// --- skipped
        )
    [4] => Array
        (
// --- skipped
        )
)
-~{}~ 10.01.07 08:27:

Переписал выборку немного иначе :)
PHP:
if((int)$this->num_rows > 0) {
array_push($this->tmp, $row);
Теперь все "лишние" записи уходят в отдельный массив.
 
Сверху