Из базы надо вывести сортированном ввиде

77
08 февраля 2022, 14:40

дорогие мегамозги! Помогите, пожалуйста. Мне необходимо вывести из базы клиентов сортированном ввиде (Картинка2) В корне проекта содержиться лишь 2 файла (index.php, db.php)

index.php содержит следующий код:

<?php
  require_once "dev.php"; // для вывода ошибок внятном ввиде
  require_once "db.php"; // подключаемся на базу через PDO
  $sql = ("SELECT * FROM users_cash");
  $sth = $pdo->query($sql);
  $result = $sth->fetchAll();
  foreach($result as $row) {
    echo "<p>".$row['name']." ".$row['surname']." ".$row['val']." ".$row['summ']."<p>";
  }

а db.php содержит следующий код:

<?php
    $host     = 'localhost';
    $dbname   = 'keremetbank';
    $user     = 'root';
    $password = '';
    $charset  = 'utf8';
    $sdn = "mysql:host=$host; dbname=$dbname; charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ]; 
    $pdo = new pdo($sdn, $user, $password);

Это выводит мне вот такую запись (я на примере exel файле показываю):

А мне необходимо вот такую запись получить:

То есть сортировать по валюте и по каждой валюте добавить Итого: и суммировать всех и тоже написать рядом а остальные поля должны быть пустыми.

Answer 1
  1. Выберем все валюты

    $sql = ("SELECT valuta FROM users_cash order by valuta");
    $sth = $pdo->query($sql);
    $valuta = $sth->fetchAll();
    
  2. Для каждой валюты выберем все вхождения и подсчитаем сумму

    foreach($valuta as $val) {           
      $sql = ("SELECT sum(valuta) as total FROM users_cash where valuta='".$val['valuta']."'");
      $sth = $pdo->query($sql);
      $total = $sth->fetchAll();
      $sql = ("SELECT * as total FROM users_cash where valuta='".$val['valuta']."'");
      $sth = $pdo->query($sql);
      $rows = $sth->fetchAll();
      foreach($rows as $row) {
          echo "<p>".$row['name']." ".$row['surname']." ".$row['val']." ".$row['summ']."<p>";
      }
      echo "<p>".$total['total']."<p>";
      }
    

Код примерный, так как нет структуры БД. Если что поправите названия полей.

READ ALSO
WordPress - вопрос по хуку

WordPress - вопрос по хуку

Данный хук срабатывает при событии на любой странице, где он вызываетсяКак заставить данный хук вызываться на определенной странице и больше...

86
Как удалить все метки с карты пользуясь geoQuery

Как удалить все метки с карты пользуясь geoQuery

Сижу уже 2 день голову ломаюПолучаю данные для меток через json из своей базы данных посредством ajax, через geoQuery

74
Перевод плагина Wordpress

Перевод плагина Wordpress

Для изменения языка сайта пользуюсь переключателем switch_to_locale($locale); Для тем все работает, для плагина нетЕсли к примеру переключимся с помощью...

76