Можно ли получить все строки из таблицы и применить условия с помощью php? - PullRequest
0 голосов
/ 25 февраля 2012

Например:

// GET ALL ROWS
$get_rows = $sql->query("SELECT expire,date_original,date, FROM table");
$gr = $get_rows->fetch_rows;

Тогда работайте с результатами ...

$expired = count($gr->expire == 0);
$active = count($gr->expire == 1);
$reposted = count($gr->date_original != date);

Или что-то на этот счет?

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Обычно это не очень хорошая идея, особенно если у вас более миллиона записей.

И чтобы выполнить подсчет (), вам нужно пройти каждую запись и понять информацию. Если у вас есть несколько строк, это не имеет значения, но когда записи становятся большими, вам лучше выпустить правильный счетчик sql.

Вам лучше написать SQL вроде этого:

select SUM(IF(expire == 1, 1, 0)) as expired, 
SUM(IF(expire == 0, 1, 0)) as notExpired 
from table;

Вы по-прежнему можете применять условия, но если у вас достаточно ресурсов для обработки количества извлекаемых записей, используйте вышеуказанное решение, но когда вы говорите о большом объеме данных предприятия, S

1 голос
/ 25 февраля 2012

использование mysqli_fetch_object:

  $result = mysqli_query("SELECT expire,date_original,date, FROM table");
    while ($gr= mysqli_fetch_object($result)) {
        $expired = count($gr->expire == 0);
        $active = count($gr->expire == 1);
        $reposted = count($gr->date_original != date);
    }
0 голосов
/ 25 февраля 2012

Просто используйте функцию SQL COUNT

SELECT COUNT(*) as `expired` from `table` WHERE <your_condition>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...