За последние 24 часа нас посетили 23167 программистов и 1702 робота. Сейчас ищут 1090 программистов ...

Вывод алфавита по Фамилии

Тема в разделе "Сделайте за меня", создана пользователем Bat9l, 11 авг 2016.

  1. Bat9l

    Bat9l Новичок

    С нами с:
    10 авг 2016
    Сообщения:
    4
    Симпатии:
    0
    Задача для кого то стара как мир но я только начинаю, так что сори...У меня есть таблица products и две интересующие меня колонки fio и url, мне необходимо вывести алфавит по которому я буду кликать и он будет выводить список всех fio у которого первая буква соответствует алфавиту.
    PHP:
    1. $rez=mysql_query("SELECT LEFT(fio,1) as letter, fio,url FROM products ORDER BY fio ASC");
    2. $lastLetter='';
    3. while ($v=mysql_fetch_assoc($rez))
    4. {
    5.         if ($lastLetter!=$v[letter])
    6.         {
    7.                 echo "<hr><b>$v[letter]</b>";
    8.                 $lastLetter=$v[letter];
    9.         }
    10.         echo "<br>$v[fio],<a href=".$v[url].">Сертификат</a>";
    11. }
    Я научился выводить списком всех, но мне бы хотелось чтобы только был алфавит и после нажатия выводился результат и так по каждому. может спойлер использовать но слишком много данных по вертикали большой объем и не красиво
    А
    Аманжолов Владислав Виктаровие,СЕРтивикат
    Аманжолов Владислав Викторовие,СЕРтивикат
    Аманжолов Владислав Викторовиу,СЕРтивикат
    Б
    Борис Евгенивич,СЕРтивикат
    Борис Евгенивич,СЕРтивикат
    Борис Евгенивич,СЕРтивикат
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Я бы тебе предложил ещё дергать айдишник пользователя и "группировать" дополнительно по нему.
     
  3. Bat9l

    Bat9l Новичок

    С нами с:
    10 авг 2016
    Сообщения:
    4
    Симпатии:
    0
    А для чего груперовать по айди, я что то не пойму. вроде как я понел отсортировал и хватит....
    Вот решил пока оставить так, если что то не так то подскажите. что исправить...
    PHP:
    1. <?php
    2. @$t=$_REQUEST['t'];
    3. ?>
    4. <a href="?section=alf&amp;t=<?php echo urlencode("А"); ?>">А</a>
    5. <a href="?section=alf&amp;t=<?php echo urlencode("Б"); ?>">Б</a>
    6. <a href="?section=alf&amp;t=<?php echo urlencode("В"); ?>">В</a>
    7. <a href="?section=alf&amp;t=<?php echo urlencode("Г"); ?>">Г</a>
    8. <a href="?section=alf&amp;t=<?php echo urlencode("Д"); ?>">Д</a>
    9. <a href="?section=alf&amp;t=<?php echo urlencode("Е"); ?>">Е</a>
    10. <a href="?section=alf&amp;t=<?php echo urlencode("Ё"); ?>">Ё</a>
    11. <a href="?section=alf&amp;t=<?php echo urlencode("Ж"); ?>">Ж</a>
    12. <a href="?section=alf&amp;t=<?php echo urlencode("З"); ?>">З</a>
    13. <a href="?section=alf&amp;t=<?php echo urlencode("И"); ?>">И</a>
    14. <a href="?section=alf&amp;t=<?php echo urlencode("Й"); ?>">Й</a>
    15. <a href="?section=alf&amp;t=<?php echo urlencode("К"); ?>">К</a>
    16. <a href="?section=alf&amp;t=<?php echo urlencode("Л"); ?>">Л</a>
    17. <a href="?section=alf&amp;t=<?php echo urlencode("М"); ?>">М</a>
    18. <a href="?section=alf&amp;t=<?php echo urlencode("Н"); ?>">Н</a>
    19. <a href="?section=alf&amp;t=<?php echo urlencode("О"); ?>">О</a>
    20. <a href="?section=alf&amp;t=<?php echo urlencode("П"); ?>">П</a>
    21. <a href="?section=alf&amp;t=<?php echo urlencode("Р"); ?>">Р</a>
    22. <a href="?section=alf&amp;t=<?php echo urlencode("С"); ?>">С</a>
    23. <a href="?section=alf&amp;t=<?php echo urlencode("Т"); ?>">Т</a>
    24. <a href="?section=alf&amp;t=<?php echo urlencode("У"); ?>">У</a>
    25. <a href="?section=alf&amp;t=<?php echo urlencode("Ф"); ?>">Ф</a>
    26. <a href="?section=alf&amp;t=<?php echo urlencode("Х"); ?>">Х</a>
    27. <a href="?section=alf&amp;t=<?php echo urlencode("Ц"); ?>">Ц</a>
    28. <a href="?section=alf&amp;t=<?php echo urlencode("Ч"); ?>">Ч</a>
    29. <a href="?section=alf&amp;t=<?php echo urlencode("Ш"); ?>">Ш</a>
    30. <a href="?section=alf&amp;t=<?php echo urlencode("Щ"); ?>">Щ</a>
    31. <a href="?section=alf&amp;t=<?php echo urlencode("Ъ"); ?>">Ъ</a>
    32. <a href="?section=alf&amp;t=<?php echo urlencode("Ы"); ?>">Ы</a>
    33. <a href="?section=alf&amp;t=<?php echo urlencode("Э"); ?>">Э</a>
    34. <a href="?section=alf&amp;t=<?php echo urlencode("Ю"); ?>">Ю</a>
    35. <a href="?section=alf&amp;t=<?php echo urlencode("Я"); ?>">Я</a>
    36. <a href="?section=alf&amp;t=<?php echo urlencode("Ң"); ?>">Ң</a>
    37. <a href="?section=alf&amp;t=<?php echo urlencode("Һ"); ?>">Һ</a>
    38. <a href="?section=alf&amp;t=<?php echo urlencode("Ә"); ?>">Ә</a>
    39. <a href="?section=alf&amp;t=<?php echo urlencode("І"); ?>">І</a>
    40. <a href="?section=alf&amp;t=<?php echo urlencode("Қ"); ?>">Қ</a>
    41. <a href="?section=alf&amp;t=<?php echo urlencode("Ө"); ?>">Ө</a>
    42. <a href="?section=alf&amp;t=<?php echo urlencode("Ұ"); ?>">Ұ</a>
    43. <a href="?section=alf&amp;t=<?php echo urlencode("Ү"); ?>">Ү</a>
    44. <a href="?section=alf&amp;t=<?php echo urlencode("Ғ"); ?>">Ғ</a>
    45.  
    46. <?php
    47. require_once dirname(__FILE__).'/bd.php';
    48. $esc_t = mysql_real_escape_string(addcslashes($t, '_%\\'));
    49. echo "$esc_t" ;
    50. $qry = "SELECT fio, url FROM products WHERE fio LIKE '{$esc_t}%'";            
    51. $result = mysql_query($qry);
    52. while ($qry = mysql_fetch_assoc($result)) {
    53. echo "$qry[fio],<a href=".$qry[url].">СЕРтивикат</a>";
    54. print '<br><br>';
    55. }
    56. ?>
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Не совсем то я подразумевал. Во-первых, эту портянку в 40+строк выводящую однородные данные - можно вывести парой строчек с применением циклов.
    Во-вторых, речь шла про алгоритм из первого листинга. Ты там на стороне пхп уже "группируешь" по первой букве фамилии пользователя. Я предложил дополнительно "группировать" по айдишнику пользователя. Первый профит: если у одного пользователя несколько записей - они будут сгруппированы и перед ним будет фио написано один раз. Второй профит улучшает первый профит: если есть два пользователя с одинаковым фио - они не пересекутся в выводе.