DLE не возвращает резщультаты запроса mysql

M
На сайте с 08.10.2010
Offline
71
412

Добрый день.

Необходимо было для моего мода поставить на крон фаил, который пересчитывает данные. (предыстория)

Вот код :


define('DATALIFEENGINE', true);
define('AUTOMODE', true);
define('LOGGED_IN', true);

define('ROOT_DIR', dirname (__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/data/config.php';
require_once ENGINE_DIR.'/inc/include/functions.inc.php';

//// получаем список всех пользователей кто приглашал
$db->free();
$row = $db->super_query("select r.main,
count(r.sub) as `naskidku`,
sum(a.xz) as `vsego`
from lnart_refferal r

inner join

(select user, count(id) as xz
from lnart_zakaz z
where z.status in ('dost','proverenno','input')
group by user) a

on r.sub=a.user
group by r.main");

print_r($row);

Если выполнить запрос в пхпмайадмин, он выдаст около 15 результатов.

Мне же скрипт дает только 1 первый.

Пробовал через обычный query а потом $row = $db->get_row(); Результат тот-же.

вообще даже print_r($db); Говорит что результат всего 1.

В чем может быть проблема?

ukrdev
На сайте с 15.11.2011
Offline
31
#1

По результату запроса нужно пройтись циклом while.


$result_all = array(); // сюда будем сливать
while ($res = mysql_fetch_array($row, MYSQL_ASSOC)) { // $row->fetch_assoc(), если объект
array_push($result_all, $res);// сливаем строку
}
print_r($result_all);
M
На сайте с 08.10.2010
Offline
71
#2

Хм... и вправду..

А почему тогда дамп массива не показывал, что в нем есть все данные

ukrdev
На сайте с 15.11.2011
Offline
31
#3

megawares, в нем(т.е. в $row) нет всех данных, есть только данные первого указателя(строки).

т.е. ты сделал запрос, и получил результат первого указателя в $row, далее тебе нужно передвигать указатель с помощью mysqli_fetch_array что бы получить следующую строку и т.д.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий