Имеем таблицу БД с 15 столбцами. Задача - посчитать одинаковые значения в каждом столбце (данные в ячейке столбца принимать только одно из трех значений "П1", "X", "П2"). Если писать отдельный запрос к каждому столбцу - проблем нет, но вод код выходит очень длинный. Пробую выводить в цикле - просто белая страница, либо ругается на превышения лимита выполнения. Помогите, кто может. Это код запроса к базе, который нормально работает Код (Text): //Запрос по Событию №1 $result=$pdo->prepare("SELECT 1 FROM tasks WHERE m1=:m1"); $result->execute(array(":m1" => "П1")); echo '<div id="m1P1">П1<span id="P1"> ', $result->rowCount(), '</span></div>'; $result=$pdo->prepare("SELECT 1 FROM tasks WHERE m1=:m1"); $result->execute(array(":m1" => "Х")); echo '<div id="m1X">Х<span id="X"> ', $result->rowCount(), '</span></div>'; $result=$pdo->prepare("SELECT 1 FROM tasks WHERE m1=:m1"); $result->execute(array(":m1" => "П2")); echo '<div id="m1P2">П2<span id="P2"> ', $result->rowCount(), '</span></div>'; А это тоже, но в цикле. Но не работает. Код (Text): for($a=1; $a++; $a<=15) $a='m'.$a; $result=$pdo->prepare("SELECT 1 FROM tasks WHERE $a=:$a"); $result->execute(array($a => "П1")); echo '<div id="m1P1">П1<span id="P1"> ', $result->rowCount(), '</span></div>'; $result=$pdo->prepare("SELECT 1 FROM tasks WHERE $a=:$a"); $result->execute(array($a => "Х")); echo '<div id="m1P1">Х<span id="P1"> ', $result->rowCount(), '</span></div>'; $result=$pdo->prepare("SELECT 1 FROM tasks WHERE $a=:$a"); $result->execute(array($a => "П2")); echo '<div id="m1P1">П2<span id="P1"> ', $result->rowCount(), '</span></div>'; ?>
Вот решение которое сократит ваш код в 3 раза : Код (Text): SELECT m2, COUNT(`m2`) AS `count` FROM testtable GROUP BY(`m2`)
Вы пишите for($a=1; $a++; $a<=15) Так нужно for($a=1; $a<=15; a++) потому что второй параметр условие а третий инкремент
Никак не красиво, согласен. Но 15 запросов лучше чем 45, верно? Я бы взял всё одним запросом и пыхом подсчитал. Или пересмотрел структуры таблиц в бд.
В один можно уложиться. Если эти данные используются часто, то имеет смысл создать в базе представление.