Используемые технологии: php, доступ к MySQL через PDO.Результаты подсчета результатов, возвращаемые в php, эффективно
У меня есть следующий запрос:
try {
$stmt = $conn->prepare("SELECT * FROM $database.appsLodged WHERE `uID` = :uid");
$stmt->bindValue(':uid', $uid);
$stmt->execute();
$result = $stmt->fetchAll();
} catch(PDOException $e) { catchMySQLerror($e->getMessage()); }
Который является довольно прямо вперед. На данный момент в соответствующей базе данных имеется 7 строк, и каждый из них может иметь другое строковое значение, возвращаемое для $ result [0] [5]. Я хотел бы иметь возможность подсчитать, сколько результатов есть, которые имеют $ result [0] [5] из «обуви и носков», а затем сколько из них имеют $ result [0] [5] «сапоги и юбки», и сколько из них имеют $ result [0] [5] «перемычек и кардиганов» - без необходимости прибегать к выполнению нескольких запросов к базе данных (я знаю, что мы можем сделать это, добавив дополнительный «И =: элемент» синтаксис и привязка :. пункт в «обувь и носки», но это, кажется, очень повторяющихся и ненужных
предложения, пожалуйста, все приветствуются :)
C
в соответствии с просьбой ниже, здесь $ результат массива в списке:
Array
(
[0] => Array
(
[id] => 1
[0] => 1
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Pending
[5] => Pending
[dateStarted] => 1421773018
[6] => 1421773018
[lastModified] => 1421773018
[7] => 1421773018
)
[1] => Array
(
[id] => 2
[0] => 2
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1421774389
[6] => 1421774389
[lastModified] => 1421774389
[7] => 1421774389
)
[2] => Array
(
[id] => 3
[0] => 3
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1421776146
[6] => 1421776146
[lastModified] => 1421776146
[7] => 1421776146
)
[3] => Array
(
[id] => 4
[0] => 4
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1421777460
[6] => 1421777460
[lastModified] => 1421777460
[7] => 1421777460
)
[4] => Array
(
[id] => 5
[0] => 5
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1421781756
[6] => 1421781756
[lastModified] => 1421781756
[7] => 1421781756
)
[5] => Array
(
[id] => 6
[0] => 6
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422213946
[6] => 1422213946
[lastModified] => 1422213946
[7] => 1422213946
)
[6] => Array
(
[id] => 7
[0] => 7
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422238026
[6] => 1422238026
[lastModified] => 1422238026
[7] => 1422238026
)
[7] => Array
(
[id] => 8
[0] => 8
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422369458
[6] => 1422369458
[lastModified] => 1422369458
[7] => 1422369458
)
[8] => Array
(
[id] => 9
[0] => 9
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422369473
[6] => 1422369473
[lastModified] => 1422369473
[7] => 1422369473
)
[9] => Array
(
[id] => 10
[0] => 10
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422371233
[6] => 1422371233
[lastModified] => 1422371233
[7] => 1422371233
)
[10] => Array
(
[id] => 11
[0] => 11
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422371291
[6] => 1422371291
[lastModified] => 1422371291
[7] => 1422371291
)
[11] => Array
(
[id] => 12
[0] => 12
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422372793
[6] => 1422372793
[lastModified] => 1422372793
[7] => 1422372793
)
[12] => Array
(
[id] => 13
[0] => 13
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422373414
[6] => 1422373414
[lastModified] => 1422373414
[7] => 1422373414
)
[13] => Array
(
[id] => 14
[0] => 14
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422373681
[6] => 1422373681
[lastModified] => 1422373681
[7] => 1422373681
)
[14] => Array
(
[id] => 15
[0] => 15
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422373927
[6] => 1422373927
[lastModified] => 1422373927
[7] => 1422373927
)
[15] => Array
(
[id] => 16
[0] => 16
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422374004
[6] => 1422374004
[lastModified] => 1422374004
[7] => 1422374004
)
[16] => Array
(
[id] => 17
[0] => 17
[appID] => 4
[1] => 4
[applicationKey] => ConSupAp
[2] => ConSupAp
[applicationName] => Conference Support Application
[3] => Conference Support Application
[uID] => 1
[4] => 1
[status] => Data Acquisition
[5] => Data Acquisition
[dateStarted] => 1422374587
[6] => 1422374587
[lastModified] => 1422374587
[7] => 1422374587
)
)
Важно помнить - это действительно столбец «статус». Я хочу посчитать, для всех этих примеров, кроме первого, установлено значение «Сбор данных». Первый установлен на «Ожидание». Есть и еще три значения, которые могут быть, и если они не находятся в базе данных в то время, мне нужен нулевой счет для них, поэтому пользователь знает, что у них есть нулевые данные, настроенные на другие параметры «статуса».
для правильного запроса, пожалуйста, просмотрите отредактированную версию моего ответа :) –
Спасибо за ответ, так же быстро! Простите, что я не знал о значении $ uid - это никогда не изменяется, так как это идентификатор пользователя, и поэтому он будет тянуть только строки из таблицы db, связанные с этим конкретным пользователем. Он не изменяется и поэтому не имеет отношения к реальному вопросу. – Cassandra
Но как у вас есть несколько значений в $ result [0] [5], то? повторяете ли вы этот запрос для пользователя? –