Покинул форум
Сообщений всего: 77
Дата рег-ции: Окт. 2009 Откуда: Пятигорск
Помог: 0 раз(а)
день добрый. тема такая. хочу замутить алфавитный указатель, типа куча буковок, щелкаешь на буковку выдает авторов, щелкаешь на автора, выдает список его статей. как такое организовать?
сам попробовал сделать такое.
В базе, где статьи, создал дополнительное поле "letter", куда заноситься первая буква фамилия автора. Далее делаю вывод на страницу этих буковок
$query="SELECT DISTINCT letter FROM `article` ORDER BY letter ASC";
из результата строю ссылки "<a href=?letter=urlencode($буква)> буква</a>". функцию urlencode использую для передачи русских букв, хотя это может быть и не правильно, пока другого способа не нашел.
Далее щелкаем на такую ссылочку и передаем нашу буковку в другой скрипт, где уже делаем выборку авторов, фамилии которых начинаются на нашу буковку
$query="SELECT DISTINCT author, id FROM `article` letter='".urldecode($bukva) GROUP BY author ORDER BY author ASC";
т.е. выбираем авторов без повторений и id первой попавшейся статьи этого автора. и строим ссылочки "<a href=?letter=urldecode($буква)&id=$id>автор</a>"
тут уже щелкаем на автора, чтобы получить все статьи автора. Для этого решил сделать так:
по id которое передается по ссылке я получаю полную фамилию автора ($author)
$query="SELECT title FROM `article` WHERE id=$author";
и полученный результат уже преобразую в нужный вид и вывожу. Как вам такой вариант? плохо или хорошо и можно ли так. А может кто то сталкивался с подобной задачей и есть другие варианты решения. Весь код полностью не могу привести слишком громоздко, это только отдельные главные вырезки кода.
Viper
Отправлено: 03 Февраля, 2010 - 15:20:14
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
ну не обязательно прям в базу тулить все. намного проще сделать можно
Покинул форум
Сообщений всего: 77
Дата рег-ции: Окт. 2009 Откуда: Пятигорск
Помог: 0 раз(а)
Viper пишет:
$like = "LIKE '$sort'";
это кажется будет выбирать тех авторов, в которых встречается эта буква, даже если она будет в середине фамилии, это так? если так то это не есть для меня хорошо
Viper
Отправлено: 03 Февраля, 2010 - 15:35:05
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
leshiy_SV пишет:
это кажется будет выбирать тех авторов, в которых встречается эта буква, даже если она будет в середине фамилии, это так? если так то это не есть для меня хорошо
вы не правы.
а% найдет все записи начинающиеся на букву а
и ещё... в первом куске кода $sorting = trim($_REQUEST, 'sorting', '');
не правильно ) эт у мну с другой функцией работает так. вам нужно будет просто $sorting = trim($_REQUEST['sorting']);
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
leshiy_SV пишет:
Будет выбирать тех авторов, в которых встречается эта буква, даже если она будет в середине
Тут есть два модификатора - ? (Один любой символ) и % (Много любых символов) которые означают любой символ - если написать шаблон без них то будет искать авторов и именем из одной буквы
Это вам конечно не регулярные выражения но тоже очень полезная вещь
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
leshiy_SV
Отправлено: 04 Февраля, 2010 - 09:58:23
Гость
Покинул форум
Сообщений всего: 77
Дата рег-ции: Окт. 2009 Откуда: Пятигорск
Помог: 0 раз(а)
а можно использовать такую конструкцию ссылки или лучше сделать транслит русских букв
Покинул форум
Сообщений всего: 77
Дата рег-ции: Окт. 2009 Откуда: Пятигорск
Помог: 0 раз(а)
ну не знаю , просто так мне легче, да и писать код меньше нужно
JustUserR
Отправлено: 04 Февраля, 2010 - 13:36:00
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
leshiy_SV пишет:
А можно использовать такую конструкцию ссылки или лучше сделать транслит русских букв
Вообще urlencode является самым обычным средством передачи данных в query-строке и подходит как для ASCIIZ так и для юникода - конечно он увеличивает размер передаваемых данных из-за такого экранирующего преобразования но вам это наверное не очень существенно
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
fullzero
Отправлено: 30 Мая, 2012 - 09:09:06
Гость
Покинул форум
Сообщений всего: 120
Дата рег-ции: Март 2011
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.