• Вывод данных из MySql?

    kimono
    @kimono
    Web developer
    Запрос должен быть примерно таким:
    SELECT LEFT(`name`, 1) `abc`, `id`, `name` FROM `persons` ORDER BY `name` ASC;

    На выходе вы получите такой массив:
    $data = [
      ['abc' => 'а', 'id' => 1, 'name' => 'Абрамов Михаил Фёдорович'],
      ['abc' => 'а', 'id' => 2, 'name' => 'Агутин Юрий Николаевич'],
      ['abc' => 'б', 'id' => 4, 'name' => 'Баринов Олег Юрьевич'],
    ];

    Далее проходим по всему массиву и складываем по начальным буквам:
    $alphabet = [];
    foreach ($data as $row){
      $alphabet[$row['abc']][$row['id']] = $row['name'];
    }

    Получается что-то подобное:
    $alphabet = [
      'а' => [
        1 => 'Абрамов Михаил Фёдорович',
        2 => 'Агутин Юрий Николаевич',
      ],
      'б' => [
        4 => 'Баринов Олег Юрьевич',
      ],
    ];

    Дальше, я думаю, вы уже сами догадались:
    foreach($alphabet as $alpha => $rows){
      echo '<h2>'.$alpha.'</h2>';
      echo '<ul>';
      foreach ($rows as $id => $name){
        echo '<li><a href="/person?id='.$id.'">'.$name.'</a></li>';
      }
      echo '</ul>';
    }
    Ответ написан
    Комментировать
  • Всплывающие блоки DIV?

    Morpheus_God
    @Morpheus_God
    Смотрите в сторону модальных окон.
    Ответ написан
    Комментировать
  • Всплывающие блоки DIV?

    Kewa2008
    @Kewa2008
    Программист
    Но не будет ли сильной нагрузки на странице, если будут скрыты более 500 блоков?

    Будет. Причем в 500 раз больше, чем если ты будешь грузить только один блок, тот который понадобится. С версткой тебе подсказал Петр. А вот чтобы избежать 500 ненужных блоко, надо почитать про ajax.
    Ответ написан
    Комментировать