Главная страница IT-студия  
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создание сайтов. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры . Авторы: Кузнецов М.В., Симдянов И.В. PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование: ступени карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Security & Cracking Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
Консультации от известных специалистов и авторов многих книг

Информационный портал
«SoftTime-INFO»




| Задачи | 14. Алфавитная навигация в базе данных (27.03.06)

14. Алфавитная навигация в базе данных (27.03.06)

Автор - Коженков Олег (FatBoy)
Категория - 3

Имеется таблица name, в которой одно из полей имеет имя name, и содержит фамилии людей. Необходимо создать скрипт index.php, который при первом обращении выводит весь русский алфавит и формирует список букв в виде ссылок ссылкок в том случае, если в таблице есть фамилии, начинающиеся на эти буквы. Если фамилий с такой буквой нет - буква должна выводится не подсвеченая.

Нажатие на букву-ссылку вызывает опять index.php, который сначала выводит вышеописанную конструкцию, а под ней выводит список, состоящий только из num (пусть для определённости 3) фамилий, начинающихся на выбранную букву. Если общее количество фамилий превышает num, то необходим вывести ссылки на страницы с продолжением этого списка.

Каждая фамилия в списке является ссылкой, нажатие на которую вызывает снова index.php. Теперь, кроме всего вышеописанного, добавляется еще "карточка" выбранного человека, состоящая из перечисления названий всех полей в таблице и соответствующих значений.

Замечание

Число и название полей в таблице могут быть произвольными - скрипт должен самостоятельно определять их число и названия.

Для проверки работоспособности скрипта можно использовать следующую таблицу:

CREATE TABLE name (
  id_name int(11) NOT NULL auto_increment,
  name tinytext NOT NULL,
  description text NOT NULL,
  PRIMARY KEY  (id_name)
) TYPE=MyISAM;
INSERT INTO name VALUES (1, 'Иванов', 'Описание для фамили Иванов');
INSERT INTO name VALUES (2, 'Петров', 'Описание для фамили Петров');
INSERT INTO name VALUES (3, 'Сидоров', 'Описание для фамили Сидоров');
INSERT INTO name VALUES (4, 'Выбегайло', 'Описание для фамили Выбегайло');
INSERT INTO name VALUES (5, 'Олейник', 'Описание для фамили Олейник');
INSERT INTO name VALUES (6, 'Пронин', 'Описание для фамили Пронин');
INSERT INTO name VALUES (7, 'Волошин', 'Описание для фамили Волошин');
INSERT INTO name VALUES (8, 'Симдянов', 'Описание для фамили Симдянов');
INSERT INTO name VALUES (9, 'Кузнецов', 'Описание для фамили Кузнецов');
INSERT INTO name VALUES (10, 'Голышев', 'Описание для фамили Голышев');
INSERT INTO name VALUES (11, 'Лебедев', 'Описание для фамили Лебедев');
INSERT INTO name VALUES (12, 'Торянов', 'Описание для фамили Троянов');
INSERT INTO name VALUES (13, 'Першин', 'Описание для фамили Першин');
INSERT INTO name VALUES (14, 'Кирилов', 'Описание для фамили Кирилов');
INSERT INTO name VALUES (15, 'Путин', 'Описание для фамили Пунит');
INSERT INTO name VALUES (16, 'Ельцин', 'Описание для фамили Ельцин');
INSERT INTO name VALUES (17, 'Немцов', 'Описание для фамили Немцов');
INSERT INTO name VALUES (18, 'Скляров', 'Описание для фамили Скляров');
INSERT INTO name VALUES (19, 'Симаков', 'Описание для фамили Симаков');
INSERT INTO name VALUES (20, 'Осипов', 'Описание для фамили Осипов');
INSERT INTO name VALUES (21, 'Суворов', 'Описание для фамили Суворов');
INSERT INTO name VALUES (22, 'Саблин', 'Описание для фамили Саблин');
INSERT INTO name VALUES (23, 'Тарасов', 'Описание для фамили Тарасов');
INSERT INTO name VALUES (24, 'Твардовский', 'Описание для фамили Твордовский');
INSERT INTO name VALUES (25, 'Сбруев', 'Описание для фамили Сбруев');
INSERT INTO name VALUES (26, 'Жарков', 'Описание для фамили Жарков');
INSERT INTO name VALUES (27, 'Самолётов', 'Описание для фамили Самолётов');
INSERT INTO name VALUES (28, 'Саутин', 'Описание для фамили Саутин');
INSERT INTO name VALUES (29, 'Сальников', 'Описание для фамили Сальников');
INSERT INTO name VALUES (30, 'Саушкин', 'Описание для фамили Саушкин');
INSERT INTO name VALUES (31, 'Соловьёв', 'Описание для фамили Соловьёв');
INSERT INTO name VALUES (32, 'Саркасов', 'Описание для фамили Саркасов');
INSERT INTO name VALUES (33, 'Савельев', 'Описание для фамили Савельев');
INSERT INTO name VALUES (34, 'Скоробейников', 'Описание для фамили Скоробейников');
INSERT INTO name VALUES (35, 'Сакрай', 'Описание для фамили Сакрай');

С ответами и обсуждением можно ознакомиться по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=15487
http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=15488
http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=15489

Русская версия English

 
  Rambler's Top100 Яндекс.Метрика Яндекс цитирования