Php sql array count

sql — количество элементов в массиве

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

У меня есть цикл while, который проходит по моей пользовательской таблице:

while($refsData=$refs->fetch())< $new_array = array($refsData['id']); print_r($new_array); $outcome = $rentedrefs->_paying($new_array); > 

print_r($new_array); дает мне:

Array ( [0] => 90427 ) Array ( [0] => 90428 ) Array ( [0] => 90429 ) Array ( [0] => 90430 ) Array ( [0] => 90431 ) Array ( [0] => 90432 ) Array ( [0] => 90433 ) Array ( [0] => 90434 ) Array ( [0] => 90435 ) Array ( [0] => 90436 ) 

Внутри _paying Функция, я считаю количество значений из массива:

function _paying($referrals_array)

Проблема в том, что выше count($referrals_array); просто дает мне: 1 когда это должно быть 10

Решение

Вы создаете новый массив на каждом этапе цикла. Вместо этого это должно быть написано так:

$new_array = array(); while($refsData=$refs->fetch()) < $new_array[] = $refsData['id']; // print_r($new_array); >$outcome = $rentedrefs->_paying($new_array); 

Обратите внимание, что я переместил _paying вызов вне цикла, так как это выглядит как функция агрегирования. Если нет, то вы, скорее всего, сделаете это $refsData[‘id’] вместо этого — не весь массив.

В качестве идентификатора, я настоятельно рекомендую использовать fetchAll () метод (вместо выборки, когда вам нужно заполнить коллекцию результатами запроса. Подсчет числа полученного массива будет тривиальным.

Другие решения

Он работает правильно, в каждом цикле цикла у вас есть один массив, поэтому сначала у вас есть:

Должно работать правильно:

var $count = 0; while($refsData=$refs->fetch())< $new_array = array($refsData['id']); $count += count($new_array); $outcome = $rentedrefs->_paying($new_array); > 

Вы создаете $new_array как новый массив с единственным элементом $refsData[‘id’] , Таким образом, счет 1 является правильным.

Чтобы получить количество результатов, либо используйте COUNT(*) выберите запросить ваш sql сервер или добавьте счетчик в ваш цикл, например так:

$entries = 0; while($refsData=$refs->fetch())< $new_array = array($refsData['id']); print_r($new_array); $entries++; $outcome = $rentedrefs->_paying($new_array); > echo $entries; 

Вы не добавляете элементы в массив, но создаете новый массив каждую итерацию. Чтобы добавить элементы, просто сделайте:

Источник

Как вывести с помощью PHP — количество записей из SQL-таблицы(базы) на html страницу?

Уважаемые знатоки!
Столкнулся с проблемой — там, где ее совсем не ожидал..

Мне нужно с помощью PHP — вывести количество записей из SQL-таблицы(базы) на html страницу.
Думал дело пустяковое, однако бьюсь уже 2-е сутки, и все безрезультатно..

Что делал и как рассуждал:

Первым делом написал SQL-запрос, и проверил его работоспособность непосредственно в СУБД SQL:

SELECT COUNT(*) FROM `items_table` WHERE id_category = '1'

Имею вполне логичный результат: COUNT(*) = 5 (записей входящих в категорию с )

Запрос, рабочий и я решаю двинуться дальше..

Далее, пишу функцию, собственно «Получения количества записей (Items)»:

function get_count_items($id_category) 

И вызываю ее на странице index.php:

//вызываю функцию с параметром id-категории

И далее, что я только не делал, для того, что бы вывести эту цифру (количества записей (Items)):

Результат: Array записей

Результат: Array записей (тоже самое)

Тут я надеялся обратится как к 1-му (0-вому) элементу массива — но тоже фиаско..


Варианты вывода (3)
(без echo):

Результат: записей (пустота в место цифры)


Варианты вывода (4)
(с помощью var_dump):

array(1) < [0]=>array(1) < ["COUNT(*)"]=>string(1) "5" >> записей

Да, в конце этого вывода — действительно выводится актуальное количество Записей в нужной категории.
Но как вывести просто цифру (без доп. информации)??

Пробовал также на стороне функции возвращать не переменную, а массив:

function get_count_items($id_category)< global $connect_sql; $sql = "SELECT COUNT(*) FROM `my_php_blog`.`items_table` WHERE id_category = $id_category"; $result = mysqli_query($connect_sql, $sql); $count_items_return = mysqli_fetch_all($result, 1); return $count_items_return[0]; >

Однако результат — пустой: . записей

То ли лыжи не едут, то ли что то я не понимаю.

Как же сделать вывод вида: «5 записей» на странице?

Простой 13 комментариев

Источник

Читайте также:  Css document body height
Оцените статью