Intereting Posts
Как передать пользовательские параметры в ajax-запрос на встроенное редактирование в jqGrid Как реализовать политику безопасности контента? softlayer api: как получить дополнительные адреса виртуальной машины PHP – самый быстрый способ преобразования массива 2d в 3d-массив, который сгруппирован по определенному значению Учетные записи заголовка PHP Soap Удалить первые уровни идентификатора в массиве Разделить html-код на две равные части контента, в PHP или JS Включить php5-curl на OpenSuse с Nginx PHP: Как использовать cron (или другой метод), чтобы каждый раз запускать скрипт PHP? Попытка заставить MySQL подключаться через php в JSON, но возвращая ошибки, связанные с MySQL из php-скрипта (PHP) Как правильно уничтожить cookie сеанса? Facebook CurlException: 6: Не удалось разрешить хост 'graph.facebook.com' Лучший способ создания вложенного массива из таблиц: несколько запросов / циклов VS single query / loop style Автозаполнение JQuery и формирование популяции с использованием JSON преобразование времени в другой часовой пояс с помощью php

Выберите значение Distinct для одного поля в Inner Join Query

Я хочу создать итоговый отчет из двух таблиц. один стол project_type другой ffw

Таблица ffw :

 |-----------------------------------------------------------------------| | ffw_id | division_id | district_id | project_type_id | name |-----------------------------------------------------------------------| | 1 | 30 | 1 | 2 |myAddress |-----------------------------------------------------------------------| | 2 | 12 | 2 | 1 | Asdfads | |-----------------------------------------------------------------------| | 3 | 30 | 6 | 1 | kkkkk | |-----------------------------------------------------------------------| | .. | .. | .. | .. | ..... | |-----------------------------------------------------------------------| 

Таблица project_type :

 |-------------------------------- | project_type_id | project_type | |--------------------------------| | 1 | food | |--------------------------------| | 2 | work | |--------------------------------| | 3 | visit | |--------------------------------| | .. | .. | |--------------------------------| 

Мой желаемый результат из двух таблиц после применения условия division_id будет

 |-------------------------------------------| | no | project_type | count | |-------------------------------------------| | 1 | food | 2 | |-------------------------------------------| | 2 | work | 1 | |-------------------------------------------| | 3 | visit | . | |-------------------------------------------| | .. | .. | .. | |-------------------------------------------| 

Я пытаюсь использовать этот код, но он отображает повторяющееся значение во время цикла

 $qry = " SELECT * FROM `project_type` LEFT JOIN `ffw` ON project_type.project_type_id = ffw.project_type_id WHERE 1 "; if (strlen($_POST["division_id"]) > 0 && $_POST["division_id"] != "0") { $qry .= " AND division_id = '".$_POST["division_id"]."'"; } $query = mysql_query($qry); 

Вы можете использовать group_by и получить счет, как group_by ниже:

 $qry="SELECT pt.project_type_id as no, pt.project_type, count(*) as count FROM project_type pt LEFT JOIN ffw ON pt.project_type_id=ffw.project_type_id"; if(strlen($_POST["division_id"])>0&&$_POST["division_id"]!="0") { $qry.=" Where division_id='".$_POST["division_id"]."'"; } $qry.=" GROUP BY pt.project_type"; 

Вы можете использовать GROUP BY для суммирования результата так:

 SELECT pt.project_type, count(*) as count FROM project_type pt LEFT JOIN ffw ff ON ff.project_type_id = pt.project_type_id GROUP BY pt.project_type 

Этот запрос вернет вам сводку ваших записей.

Вот полный пример вашего кода с помощью MYSQLi Object Oriented:

 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT pt.project_type, count(*) as count FROM project_type pt LEFT JOIN ffw ff ON ff.project_type_id = pt.project_type_id WHERE 1 = 1 "; if(strlen($_POST["division_id"])> 0 && $_POST["division_id"]!="0") { $sql.= " AND division_id = '".$_POST["division_id"]."'"; } $sql .= "GROUP BY pt.project_type"; $result = $conn->query($sql); if ($result->num_rows > 0) { $i = 1; // output data of each row while($row = $result->fetch_assoc()) { echo $id. " - Name: " . $row["project_type"]. " " . $row["count"]. "<br>"; $i++; } } else { echo "0 results"; } $conn->close(); 

Боковое примечание: я предлагаю использовать mysqli_ * OR PDO, потому что mysql_ * устарел и его недоступно в PHP 7