Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Сортировка !


Автор: box 21.3.2007, 18:18
есть таблица , в ней три поля, нужно отсортировать по алфавиту поле №1 (field1) но только так , чтобы при при переносе строки , допустим с номером 5 , автоматически переносилось и содержимое строк с номером 5 всех остальных полей , подскажите пожалуйста , можно-ли такое реализовать при помощи запросов , не прибегая к помощи функции сортировки массивов !!!!! 
  мне очень важно сохранить связь т.е , что-бы после сортировки в строке предположим №5 поля №2 ,3 были теже самые данные что и до сортировки !!!иначе потеряется связь имя ссылки - адресс !!!!


 ! 
PARROT
Большая просьба не использовать в заголовках своих постов, множественное количество восклицательных знаков!!!

  
  
 

Автор: GZep 21.3.2007, 18:46
box, не понятно, что именно вы хотите... Можите составить схему таблицы?

Автор: box 21.3.2007, 18:52
-- Структура таблицы `dbh2`
-- 

CREATE TABLE `dbh2` (
  `id_a_end` int(11) NOT NULL default '0',
  `fi` text NOT NULL,
  `fi1` text NOT NULL,
  `fi2` text NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

 в поле fi  у меня записанны имена ссылок , fi1,fi2 адреса для этой ссылки , и все строго соответствует !

Автор: mishaSL 21.3.2007, 19:35
box, если я понял ваши сообщения (их понять достаточно сложно), у вас данные в БД MySQL и их надо отсортировать. Тогда вы можете воспользоваться оператором ORDER BY в SQL запросе.

Пример:
Код

SELECT * FROM `dbh2` ORDER BY `fi` ASC


Если я неправильно  понял, то пожалуйста переформулируйте вопрос. smile 

Автор: box 21.3.2007, 19:45
Спасибо , я уже разобрался , я просто забыл в конце запроса поставить ASC! 
да , кстати а зачем , что это обозначает ???
P.S. Да , и еще , вопрос : это мне нужно будет каждый раз при вызове таблицы писать такой запрос , или можно единоразово ???

Автор: mishaSL 21.3.2007, 20:03
Цитата(box @  21.3.2007,  19:45 Найти цитируемый пост)
что это обозначает ???


ASC - сортировка по возрастанию
DESC - сортировка по убыванию

http://www.mysql.ru/docs/man/SELECT.html



Цитата(box @  21.3.2007,  19:45 Найти цитируемый пост)
это мне нужно будет каждый раз при вызове таблицы писать такой запрос , или можно единоразово


Что значит при вызове таблицы? В каждом запросе вы опреденяете, как должны сортироваться данные(если это необходимо). Порядок хранения данных в БД не меняется при их сортировке в выборке.

Автор: box 21.3.2007, 20:19
Постойте , а как же мне быть кагда я выбираю данные при помощи запроса :
$sql = "SELECT * FROM dbh WHERE field LIKE '".$pic."%';";
мне нужно что-бы на выходе данные были отсортированы по алфавиту !!!
ну вот допустим переменная $pic="A" а в базе на букву "А" находятся следующие  строки :
Аддддддддд
Аббббббббб
Агггггггггггг
Ажжжжжжж
ну так вот мне надо что -бы сортировалось по старншесву алфавита второй буквы , потому-что первая итак "А" и сортировать ее не имеет смысла !!!

Автор: Serkys 21.3.2007, 20:36
Цитата(box @  21.3.2007,  20:19 Найти цитируемый пост)
ну так вот мне надо что -бы сортировалось по старншесву алфавита второй буквы , потому-что первая итак "А" и сортировать ее не имеет смысла !!!

Ты в любом случае не напишешь функции, которая, даже пропуская "А", будет сортировать быстрее, чем стандартный ORDER BY в MySQL.
Код

$sql = "SELECT * FROM `dbh` WHERE `field` LIKE '" . $pic . "%' ORDER BY `field`";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)