Получить строки и проверить, имеет ли это значение - PullRequest
0 голосов
/ 20 ноября 2018

Я очень плохо знаком с программированием и изучением PHP и MYSQL.Я пытаюсь сгруппировать одни и те же запросы CustomerID в одной и той же таблице, создавая эхо.На данный момент мой код повторяет все запросы.У меня есть таблица типа

ID      CustomerID     DATE        Company
1           1       2018-11-19        A
2           1       2018-11-19        A
3           2       2018-11-19        B
4           3       2018-11-19        C
5           4       2018-11-19        D
6           4       2018-11-19        D

Мой код

$query = "SELECT `customers`.ID, `customers`.customerid, `customers`.date
        FROM `customers` WHERE month(DATE)= month(CURRENT_DATE()) AND YEAR(DATE) = YEAR(CURRENT_DATE());

$result = $mysqli->query($query);

while($resultquery = $result->fetch_array())

{
$queryresult[] = $resultquery;

}
if (!empty($queryresult)) {

foreach($queryresult as $queryresults)
{

$id = $queryresults['id'];
$customerid = $queryresults['customerid'];  
$date = $queryresults['date'];
?>

Затем я повторяю это, и результат

Company Name: A
ID CustomerID DATE
1      1    2018-11-19

Company Name: A
ID CustomerID DATE
2      1    2018-11-19

Company Name: B
ID CustomerID DATE
3      2    2018-11-19

Company Name: C
ID CustomerID DATE
4      3    2018-11-19

<?php }} ?>

И т.д. ..

Но я хочу сравнить идентификаторы customerID и, если их несколько с одним и тем же идентификатором, отобразить их в виде группы в таблице.

Company Name: A
ID CustomerID DATE
1      1    2018-11-19
2      1    2018-11-19

Company Name: B
ID CustomerID DATE
3      2    2018-11-19

Company Name: C
ID CustomerID DATE
4      3    2018-11-19

Я сделал SQL-запрос с GROUP_CONCAT и использовал SEPARATOR '|'), чтобы сгруппировать результат, это работает, но я не думаю, что это лучшее, чтобы достичь этого, поэтому, пожалуйста, помогите.Спасибо

1 Ответ

0 голосов
/ 20 ноября 2018

Сопоставьте свои данные в массиве ключ-значение, указав Company в качестве ключа (включите компанию в запрос:

$ query = "SELECT customers .ID, customers .customerid, customers .date, company ОТ customers ГДЕ месяц (ДАТА) = месяц (CURRENT_DATE ()) И ГОД (ДАТА) = ГОД (CURRENT_DATE ()) ";

$query = "SELECT `customers`.ID, `customers`.customerid, `customers`.date
        FROM `customers` WHERE month(DATE)= month(CURRENT_DATE()) AND YEAR(DATE) = YEAR(CURRENT_DATE());

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

$result = $mysqli->query($query);
$queryresult = [];
while($resultquery = $result->fetch_array())

{
 $company = $resultquery['company'];
 if (array_key_exists($company,$queryresult){
   @$queryresult[$company] = [];
 }
 @$queryresult[$company][] = $resultquery;

}

Затем вы можете представить информацию, используя foreach:

foreach($queryresult as $company => $items){
   // header by company
   echo "Company Name: $company \n";
   echo "ID CustomerID DATE\n";
   foreach($items as $item){
     // items in company
     echo "{$item['id']} {$item['customerid']} {$item['date']}\n"; 
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...