Таблица из SQL-запроса с заголовком

Я создал таблицу из запроса SQL и отобразил ее в том же порядке, в каком они отображаются в таблице. (Таблица A на изображении).

Таблица из SQL-запроса с заголовком

Это нормально работает.

Однако было бы здорово, если бы данные можно было объединить в категорию участников. Как в таблице B на изображении.

SQL-запрос ...

$row = mysqli_num_rows($sql);
if ($row > 0) {          
    while ($result = mysqli_fetch_assoc($sql)){
        $category[] = trim($result['category']);
        $name[] = trim($result['f_name']).' '.trim($result['l_name']);
        $memid[] = trim($result1['memid']);
        $addr[] = trim($result['addr']);    
        $phone[] = trim($result['phone']);
    }
} ?>



<table>
    <tr>                
        <th>Category</th>
        <th>Mem ID</th>
        <th>Name</th>
        <th>Address</th>
        <th>Phone</th>                      
    </tr>
    <?php                 
    if ($row>0) {   
        for ($i=0; $i<=$row-1; $i++){ ?>
            <tr>
                <td><?php echo $category[$i]; ?></td>       
                <td><?php echo $memid[$i]; ?></td>
                <td><?php echo $name[$i]; ?> </td>
                <td><?php echo $addr[$i]; ?> </td>  
                <td><?php echo $phone[$i]; ?> </td> 
            </tr>
        <?php } 
    } ?>
</table>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Небольшое обновление вашего кода должно сделать это:

$categories = [];
$row = mysqli_num_rows($sql);

if ($row > 0) {          
    while ($result = mysqli_fetch_assoc($sql)) {
        $result_category = trim($result['category']);

        if (!isset($categories[$result_category])) {
            $categories[$result_category] = [];
        }

        $new = [];

        $new['category'] = $result_category;
        $new['name'] = trim($result['f_name']).' '.trim($result['l_name']);
        $new['memid'] = trim($result['memid']);
        $new['addr'] = trim($result['addr']);   
        $new['phone'] = trim($result['phone']);

        $categories[$result_category][] = $new;
    }
} ?>    

    <table>
      <tr>              
        <th>Category</th>
        <th>Name</th>
        <th>Phone</th>                      
      </tr>
<?php                 
if ($row>0) {   
    foreach ($categories as $category_name => $data){ ?>
        <tr>
            <td><?php echo $category_name; ?></td>      
            <td></td>
            <td></td>   
        </tr>
        <?php foreach ($data as $row) {?>
        <tr>
            <td><?php echo $row['memid']; ?></td>
            <td><?php echo $row['name']; ?> </td>
            <td><?php echo $row['phone']; ?> </td>  
        </tr>
    <?php   }
     } 
    } ?>
    </table>

Привет, CodiMech25, Спасибо за ответ. Позвольте мне попробовать это и вернуться к вам.

sansam 01.08.2018 07:02

Привет, CodiMech25, это отлично работает. Большое спасибо .. :)

sansam 01.08.2018 07:14

@sansam Я рад, что смог помочь :)

CodiMech25 01.08.2018 07:17

В то время как прокрутите метку данных в массиве с группой имени категории, а затем распечатайте результат

$row = mysqli_num_rows($sql);
if ($row > 0) {          
    $mainArray = [];
    while ($result = mysqli_fetch_assoc($sql)){
        $category = $result['category'];
        if (isset($mainArray[$category])){
            $mainArray[$category][] = $result;
        } else {
            $mainArray[$category] = $result;
        }
    }
}
foreach($mainArray as $cateName => $data){ ?>
    <tr>
        <td style = "text-align:left"><?php echo $cateName; ?></td>      
        <td></td>
        <td></td>   
    </tr>
    <?php
    foreach($data as $row){ ?>
    <tr>
        <td><?php echo $row['memid']; ?></td>      
        <td><?php echo $row['f_name'].' '.$row['l_name']; ?></td>
        <td><?php echo $row['phone']; ?></td>   
    </tr>
    <?php } ?>
}
?>

Другие вопросы по теме