[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод по буквам алфавита
Гость_maks
Совсем недавно начал знакомится с PHP и MySql ! Столкнулся с такой проблемой что нужно вывести информацию по буквам алфавита . Например при нажатии на категорию выводились все буквы алфавита а при нажатии на букву слова начинающиеся на эту букву . Уверен что это не сложно.Буду благодарен любому варианту !!!!



Спустя 15 часов, 38 минут, 38 секунд (20.01.2009 - 12:18) sergeiss написал(а):
См. в мануале по SQL оператор SELECT и обрати внимание на опцию ORDER BY.

Спустя 3 часа, 22 минуты, 44 секунды (20.01.2009 - 15:40) leo написал(а):
С помощью ORDER BY можно отсортировать по первой букве и они будут выводится но так как в таблице присутствуют как русские так и латинские буквы то получится не совсем то что мне нужно.Мне бы хотелось что бы получилось примерно как здесь .http://www.gitaristu.ru/accords/

Спустя 2 часа, 3 минуты, 57 секунд (20.01.2009 - 17:44) Guest написал(а):
Такого эфектам можно добиться, используя оператор SQL MID. Только не забудьте, что кирилицу, передаваемую в GET переменной нужно кодировать.

Спустя 4 часа, 2 минуты, 4 секунды (20.01.2009 - 21:47) leo написал(а):
А можно пожалуйста подробнее про оператор MID !

Спустя 28 минут, 53 секунды (20.01.2009 - 22:15) kirik написал(а):
Можно с помощью LIKE -
SQL
SELECT * FROM `table` WHERE `field` LIKE 'h%'

- выведет все, где поле field начинается на h.

Спустя 1 час, 57 минут, 47 секунд (21.01.2009 - 00:13) twin написал(а):
Можно и так. Оператор MID позволяет искать по второму символу или группе символов внутри слова. В общем комбинировать. Выглядет так:
SQL
SELECT `pole` FROM `table` WHERE MID(`pole`, 2,1)='h'

Здесь 2 - начальная позиция, 1 - количество символов.

Спустя 36 минут, 52 секунды (21.01.2009 - 00:50) kirik написал(а):
Также можно вместо MID использовать SUBSTRING -
SQL
SELECT * FROM `table` WHERE SUBSTRING(`field`, 1, 1) = 'h'


UPD. сори, MID является синонимом SUBSTRING

Спустя 5 часов, 44 минуты, 30 секунд (21.01.2009 - 06:35) leo написал(а):
Огромное спасибо всем кто откликнулся !!!

Спустя 1 час, 11 минут, 3 секунды (21.01.2009 - 07:46) Sylex написал(а):
MID мне Basic напомнил biggrin.gif

Спустя 5 часов, 45 минут, 2 секунды (21.01.2009 - 13:31) Guest написал(а):
А вот ещё вопросик : а как буквы алфавита вывести что б попроще biggrin.gif

Спустя 1 час, 4 минуты, 47 секунд (21.01.2009 - 14:35) twin написал(а):
Мне тоже обычно лень писать руками... Но выводить статические ссылки динамически - ресурсоёмко и неоправдано. По этому вот:
PHP
$lat = range("a","z");
foreach(
$lat as $lit)
echo (strlen($lit) > 2)?"&lt;a href='?lit=".htmlspecialchars($lit)."'&gt;".$lit."&lt;/a&gt;<br>":
"&lt;a href='?lit=".htmlspecialchars($lit)."'&gt;".$lit."&lt;/a&gt;<br>";


$cyr = range("72","104");
foreach(
$cyr as $lit)
echo (strlen($lit) > 2)?"&lt;a href='?lit=".htmlspecialchars("&#1".$lit.";")."'&gt;&#1".$lit.";&lt;/a&gt;<br>":
"&lt;a href='?lit=".htmlspecialchars("&#10".$lit.";")."'&gt;&#10".$lit.";&lt;/a&gt;<br>";
Правда буква Ё на последнем месте, но уж одну то букву переставите руками. smile.gif

Спустя 1 час, 11 минут, 17 секунд (21.01.2009 - 15:47) Guest написал(а):
А можно пожалуёста если не затруднит подробнее описать этот код для новичка . rolleyes.gif

Спустя 3 минуты, 19 секунд (21.01.2009 - 15:50) leo написал(а):
блин под своим ником забыл зайти опять biggrin.gif

Спустя 16 минут, 5 секунд (21.01.2009 - 16:06) twin написал(а):
Ну запустите в браузере и скопируйте ссылки... А если Вы совсем новичек, то Вам с основ надо начинать, это долго объяснять придется. Вот здесь посмотрите, может пригодится. http://php.inkz.ru

Спустя 4 часа, 46 минут, 34 секунды (21.01.2009 - 20:53) Guest написал(а):
Всё разобрался ! Всем большое спасибо !

Спустя 4 дня, 18 часов, 28 минут, 19 секунд (26.01.2009 - 15:21) Гость_alex написал(а):
Господа программисты помогите начинающему разобраться в выше написанном коде хотя бы в двух словах что к чему там.......дальше думаю сам разберусь

Спустя 12 минут, 36 секунд (26.01.2009 - 15:34) twin написал(а):
В каком именно?

Спустя 10 часов, 42 минуты, 29 секунд (27.01.2009 - 02:16) Гость_alex написал(а):
Вот в этом :
[php]$lat = range("a","z");
foreach($lat as $lit)
echo (strlen($lit) > 2)?"&lt;a href='?lit=".htmlspecialchars($lit)."'&gt;".$lit."&lt;/a&gt;<br>":
"&lt;a href='?lit=".htmlspecialchars($lit)."'&gt;".$lit."&lt;/a&gt;<br>";


$cyr = range("72","104");
foreach($cyr as $lit)
echo (strlen($lit) > 2)?"&lt;a href='?lit=".htmlspecialchars("&#1".$lit.";")."'&gt;&#1".$lit.";&lt;/a&gt;<br>":
"&lt;a href='?lit=".htmlspecialchars("&#10".$lit.";")."'&gt;&#10".$lit.";&lt;/a&gt;<br>";

Спустя 47 минут, 31 секунда (27.01.2009 - 03:04) twin написал(а):
Заполняем массив буквами от a до z, то есть латинским алфавитом
PHP
<?
$lat = range("a","z");

Проходим по массиву $lat, вынимая по очереди значения и присваивая
их переменной $lit
PHP
<?
foreach(
$lat as $lit)
Выводим в поток (браузер) сформированную строку. 
Тут я ступил малость, потму что скопировал нижний код (стыдно) unsure.gif  Хотя и работает, но надо так:
PHP
<?php
$lat 
= range("a","z");
foreach(
$lat as $lit)
echo "&lt;a href='?lit=".$lit."'&gt;".$lit."&lt;/a&gt;<br>";

Аналогично и второй блок, с тем различием, что буквы русского алфавита (кирилица) в нем представлена в виде кодов, то есть так & #1072;
Коды формируются двумя выражениями, в зависимости от количества символов в элементе массива. То есть если это 72, то добавляем 10, а если 100, то единицу. Для того, чтоб вывести в браузер букву, а не код, обрабатываем htmlspecialchars(). А брички (<>) представляем тоже кодом. В результате имеем строку вида
<a href='?lit=& #1072;'>а</a>
кирилица в href которых не нуждается в кодировании. Запускаем скрипт в браузере и имеем полный набор ссылок с латинским и русским алфавитами. Остается скопировать и поставить в меню. Правда в скрипт нужно подставить адрес обработчика, но с этим то поди разберетесь...
Один нюанс. В системе кодировок utf-8 буква Ё не на своем месте, видимо хватились поздно, забыли. По этому она в хвосте.
Еще подробнее? smile.gif

Спустя 8 часов, 10 минут, 7 секунд (27.01.2009 - 11:14) Гость_alex написал(а):
Большое спасибо ! Всё понял rolleyes.gif

Спустя 12 минут, 12 секунд (27.01.2009 - 11:26) Гость_alex написал(а):
попробовал вставить в код и выввести в браузер но почему то выводятся строчки вида <a href='view_post.php?lit=a'>a</a>
не подскажете почему ! rolleyes.gif

Спустя 14 минут, 27 секунд (27.01.2009 - 11:40) twin написал(а):
Всё правильно выводится. Дело в том, что английские буквы (латиницу) не нужно кодировать, для того что бы передать в УРЛ. А вот кирилицу нужно, по этому латинские символы идут как таковые, а русские - в виде кодов.

Спустя 4 минуты, 52 секунды (27.01.2009 - 11:45) Гость_alex написал(а):
У меня в виде кодов и латиница и кирилица

Спустя 12 минут, 26 секунд (27.01.2009 - 11:58) twin написал(а):
Не понял, Вы имеете ввиду, код ссылки? Или буквы? Если ссылки, то это же разовый скрипт, что бы руками не писать. Для того и кодом выводится, чтоб скопировать с экрана и в свою страницу вставить. А буквы не могут отображаться кодами, если только что нибудь с кодировками не намудрено...

Спустя 36 минут, 28 секунд (27.01.2009 - 12:34) Гость_alex написал(а):
А дак вот в чём дело.....ну отлично ...теперь всё понятно ! Спасибо за разяснение а то бы я так ничего и не понял ! biggrin.gif

Спустя 9 часов, 50 минут, 59 секунд (27.01.2009 - 22:25) leo написал(а):
Доброго времени суток всем ! Помогите мне пожалуйста если сможете !Вот например мне нужно вывести тексты песен.......вывел алфавит нажал на буковку соответствующую первой букве названия группы песню которой я хотел бы прочитать появился список песен ....Как сделать что бы при нажатии на эту песню выводился текст именно этой песни......Помогите пожалуйста

Спустя 4 дня, 15 часов, 23 минуты, 17 секунд (1.02.2009 - 13:48) leo написал(а):
Подскажите пожалуйста что не так :
Вот в коде есть ссылки :
HTML
<a href='vuvod_info?lit=a'>a</a>
<a href='vuvod_info?lit=b'>b</a>
<a href='vuvod_info?lit=c'>c</a>
<a href='vuvod_info?lit=d'>d</a>


а вот код из файла который открывает эти ссылки:
PHP
if (isset($_GET['lit'])) {$lit=$_GET['lit'];}

SQL
$result = mysql_query ("SELECT * FROM cat_info WHERE name LIKE '$lit%'" ,$db);

но почему то при переходе по ссылке пишет что такого файла не существует хотя на локальном всё работает ........ при чём если ссылки вводить вручную в строку браузера то всё открывает !

Спустя 1 час, 17 минут, 16 секунд (1.02.2009 - 15:06) leo написал(а):
Всё разобрался !!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.