@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>
  • Вопрос задан
  • 171 просмотр
Решения вопроса 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> ';
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы