Просто изучая PHP, пожалуйста, будьте добрыми.
У меня есть запрос mysqli, из которого мне нужно получить конкретные результаты.
Например, Мне нужно потянуть 1, 4, 7, 10 и т. Д., А затем вернуться назад и вытащить 2, 5, 8, 11 и т. Д., А затем вернуться и, наконец, потянуть 3, 6, 9, 12 , etc строка. И мне также нужно ссылаться на каждое поле отдельно.
Каков наилучший способ для этого?
Причина в том, что мне приходится показывать результаты.
Я знаю, что могу сделать это в ASP, перемещая указатель, но я понятия не имею о PHP.
FYI PHP версия 5.3.6.
Спасибо. PHP массив результатов mysqli
ответ
Вы можете использовать метод 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
}
Это именно то, что мне нужно! Но по какой-то причине это не нравится «mysqli_fetch_all». Когда он ударяет, скрипт останавливается. Если я прокомментирую это, то цикл for работает (проверяется с помощью простого «echo $ i»), но возвращает mysqli_fetch_all, и он даже не попадает в цикл for. –
'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 закомментирован. } ' –Возможно, у вас нет mysqlnd. Я добавил альтернативный способ получить все строки. Он работает сейчас? – jh314
Что вы попытки в PHP? Любой код? –
Где твоя попытка? –
1 запрос, тогда сортировка данных в php будет более эффективной –