2013-07-03 3 views
-1

Просто изучая PHP, пожалуйста, будьте добрыми.

У меня есть запрос mysqli, из которого мне нужно получить конкретные результаты.
Например, Мне нужно потянуть 1, 4, 7, 10 и т. Д., А затем вернуться назад и вытащить 2, 5, 8, 11 и т. Д., А затем вернуться и, наконец, потянуть 3, 6, 9, 12 , etc строка. И мне также нужно ссылаться на каждое поле отдельно.

Каков наилучший способ для этого?

Причина в том, что мне приходится показывать результаты.
Я знаю, что могу сделать это в ASP, перемещая указатель, но я понятия не имею о PHP.

FYI PHP версия 5.3.6.

Спасибо. PHP массив результатов mysqli

+1

Что вы попытки в PHP? Любой код? –

+0

Где твоя попытка? –

+0

1 запрос, тогда сортировка данных в php будет более эффективной –

ответ

0

Вы можете использовать метод mysqli_fetch_all на результат вашего запроса:

$result = mysqli_query($db_handle, "SELECT..."); 
$rows = mysqli_fetch_all($result); 

ИЛИ, если у вас нет mysqlnd, вы можете сделать это:

for ($rows = array(); $tmp = mysqli_fetch_array($result);) 
    $rows[] = $tmp; 

$rows будет содержать все строки, так что вы можете получить доступ к каждой строке любым индексом, который вы хотите.

Так что, если вы хотите, 1, 4, 7, 10-й ряд, вы можете сделать это:

for ($i = 1; $i <= 10; $i += 3) { 
    $rows[$i]["fieldname"]; // do your stuff 
} 
+0

Это именно то, что мне нужно! Но по какой-то причине это не нравится «mysqli_fetch_all». Когда он ударяет, скрипт останавливается. Если я прокомментирую это, то цикл for работает (проверяется с помощью простого «echo $ i»), но возвращает mysqli_fetch_all, и он даже не попадает в цикл for. –

+0

'echo '

". $ result-> num_rows. "

"; // возвращает 10 $ rows = mysqli_fetch_all ($ result); // Если оставлено в стоп-скрипте для ($ f = 0; $ f <= ($ row_cnt-1); $ f ++) { echo "

". $ f. "

"; // Возвращает 0 1 2 3 4 5 6 ... только если mysqli_fetch_all закомментирован. } ' –

+0

Возможно, у вас нет mysqlnd. Я добавил альтернативный способ получить все строки. Он работает сейчас? – jh314