@montpellier

Как загрузить данные из бд для раскрывающейся таблицы?

У меня есть таблица на сайте, нужно чтобы с бд загружались данные запросом с group by, допустим как у меня по email, а когда нажимаешь на этот емаил, раскрывалась таблица и появлялись данные которые сгруппированы. Сейчас только первый элемент загружается, как загружать все?
Скрин
5cf92c50c8e00946709069.png
SQL
"SELECT *, SUM(price) as sum FROM TotalTickets GROUP BY email"
HTML
<table class="table email">
            <thead>
                <tr>
                    <th>Название</th>
                    <th>Дата</th>
                    <th>Начало</th>
                    <th>Цена</th>
                    <th>Сумма</th>
                </tr>
            </thead>
            <tbody>
            <?php
            // подключение к бд
            include('../connection.php'); 
            // достаем все новости
            $sql = mysql_query("SELECT *, SUM(price) as sum FROM TotalTickets GROUP BY email") or die(mysql_error());
            while($cust = mysql_fetch_array($sql, MYSQL_ASSOC)){              
    echo           '<tbody class="labels">
                    <tr>
                        <td colspan="5">
                            <label for="accounting">'.$cust['email'].'</label>
                            <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
                        </td>
                    </tr>
                </tbody>
               <tbody class="hide">
                    <tr>
                        <td>'.$cust['filmName'].'</td>
                        <td>'.$cust['date'].'</td>
                        <td>'.$cust['timeBegin'].'</td>
                        <td>'.$cust['price'].'</td>
                        <td>'.$cust['sum'].'</td>
                   </tr>
               </tbody> ';   
                }
                ?>     
            </tbody>
        </table>
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Самый дуболомный вариант:
$sql = mysql_query("SELECT * FROM TotalTickets ORDER BY email ASC") or die(mysql_error());
$cust_email = false; $cust_txt = ""; $cust_sum = 0;
while($cust = mysql_fetch_array($sql, MYSQL_ASSOC))
{
    if ($cust_email !== false AND $cust_email != $cust['email'])
    {
        echo '<tbody class="labels">
                    <tr>
                        <td colspan="5">
                            <label for="accounting">'.$cust_email.': '.round($cust_sum, 2).'</label>
                            <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
                        </td>
                    </tr>
                </tbody>
               <tbody class="hide">
                  '.$cust_txt.'
               </tbody> ';
        $cust_email = $cust['email'];
        $cust_txt = "";
        $cust_sum = 0;
    }
    $cust_sum += $cust['price'];
    $cust_txt .= '                    <tr>
                        <td>'.$cust['filmName'].'</td>
                        <td>'.$cust['date'].'</td>
                        <td>'.$cust['timeBegin'].'</td>
                        <td>'.$cust['price'].'</td>
                        <td>0</td>
                   </tr>';
}
if (!empty($cust_txt))
{
    echo '<tbody class="labels">
                    <tr>
                        <td colspan="5">
                            <label for="accounting">'.$cust_email.': '.round($cust_sum, 2).'</label>
                            <input type="checkbox" name="accounting" id="accounting" data-toggle="toggle">
                        </td>
                    </tr>
                </tbody>
               <tbody class="hide">
                  '.$cust_txt.'
               </tbody> ';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
БюроБюро Калининград
от 60 000 до 120 000 руб.
ФУДТЕХ Москва
от 110 000 до 140 000 руб.
EcommPay IT Москва
от 160 000 руб.
21 июл. 2019, в 14:16
5000 руб./за проект
21 июл. 2019, в 13:57
1000 руб./за проект
21 июл. 2019, в 12:53
5000 руб./за проект