@pro100nic

Как отсортировать записи из базы данных (mysql)?

На странице есть список категорий
<h1 class="bukva" id="bukva_a">А</h1>


                    <a href="http://localhost/menu_general/masters_page/masters/masters.php">
                        <div class="kategoriya">
                            <div class="kolichestvo">0</div>
                            <?php echo $row['category_name'] . "\t"; ?>
                        </div>
                    </a>

в базе есть название категорий5c076556ce87b334538867.png

как мне их отсортировать чтобы получилось так:
5c0765d6a9a0b572845677.png

т.е. надо посмотреть есть ли в базе категории названия которых начинается допустим на "А"
если есть то в коде:
<h1 class="bukva" id="bukva_a">А</h1>
записать эту букву
И вывести название этой категории в коде:
<? $sql = 'SELECT * FROM categories';
                
                
                
                foreach ($conndb->query($sql) as $row): ?>
                
                
                    


                    <a href="http://localhost/menu_general/masters_page/masters/masters.php">
                        <div class="kategoriya">
                            <div class="kolichestvo">0</div>
                            <?php echo $row['category_name'] . "\t"; ?>
                        </div>
                    </a>
                    
                    
                    
                <? endforeach;?>


При такой сортировки:
<h1 class="bukva" id="bukva_a">А</h1>
                
                <? $sql = 'SELECT * FROM categories';
                
                
                
                foreach ($conndb->query($sql) as $row): ?>
                
                
                    


                    <a href="http://localhost/menu_general/masters_page/masters/masters.php">
                        <div class="kategoriya">
                            <div class="kolichestvo">0</div>
                            <?php echo $row['category_name'] . "\t"; ?>
                        </div>
                    </a>
                    
                    
                    
                <? endforeach;?>


Все категории выводятся под одну букву5c07830dddf41049468275.png

подскажите что нужно сделать

ссылка на сайт
  • Вопрос задан
  • 111 просмотров
Решения вопроса 2
<?php if ($lastChar !== ($currentChar = mb_convert_case(mb_substr($row['category_name'], 0, 1), CASE_UPPER))): ?>
<?php $lastChar = $currentChar; ?>
<h1 class="bukva" id="bukva_<?= mb_convert_case($lastChar, CASE_LOWER); ?>"><?= $lastChar; ?></h1>
<?php endif; ?>
Ответ написан
@pro100nic Автор вопроса
Александр Вроде этот код работает
<?php

    $lastChar = "А";

?>
    
<?php

    foreach ($conndb->query($sql) as $row):
    
?>

<?php if ($lastChar !== ($currentChar = mb_convert_case(mb_substr($row['category_name'], 0, 1), CASE_UPPER))): ?>
<?php $lastChar = $currentChar; ?>
<h1 class="bukva" id="bukva_<?= mb_convert_case($lastChar, CASE_LOWER); ?>"><?= $lastChar; ?></h1>
<?php endif; ?>
                
        <a href="http://localhost/menu_general/masters_page/masters/masters.php">
        

        
            <div class="kategoriya">
                <div class="kolichestvo">0</div>
                <?php echo $row['category_name'] . "\t"; ?>
            </div>
            
        </a>

<?php

    endforeach;
    
?>


только вместо буквы вопрос
5c07d3edaca3e248345888.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы