[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка
umnik90
http://www.slon.dn.ua/zhilcom/zhilcom_in.php

Сортирую ORDER BY прям в запросе

$result = mysql_query ("SELECT `ad_index`, `ad_date`, `ad_title`, `ad_html`, `district`, `orient`, `phones`, `total_space`, `floors_num`, `state`, `material`, `house_type`, CAST(`price` AS SIGNED) as `price`, `room_count`, `living_space`, `kitchen_space`, `planning`, `floor`, `toilet`, `balcony`, `loggia` FROM zhilcom_class_advert_flat_sale WHERE `district` IN (".$d.") AND `room_count` IN (".$r.") AND `orient` LIKE '$orient' ORDER BY $key ", $db);  


все окей, если задать ключ сортировки сразу, а как быть если запрос уже отработал, данные вывели и требуется сортировать уже отобранные?

в моем случае сортировка просто делает нульцевый запрос по всем значениям...



Спустя 54 минуты, 14 секунд (1.08.2010 - 01:52) REANIMATOR написал(а):
сортировать без нового запроса?

Спустя 13 часов, 35 минут, 38 секунд (1.08.2010 - 15:27) Лелик написал(а):
Чтоб не создавать новую тему вопрос тоже о сортировке... У меня есть табличка, в которой пять столбцов. После автоматического экспорта csv - файла, он рассидывает все хрен знает как... Через пхп-админ сортирую, а толку ноль... В нем сортирует нормально, а при выводе из скрипта отображается все как-то коряво. Данные я беру на протяжении скрипта раз три-четыре... Вот у меня и вопрос мне перед каждым подобным запросом нужно ставить, что-то типа:
$pampararm = mysql_query("SELECT * FROM `nout` ORDER BY `id` ASC");
(не срабатывант почему-то((( )
или можно как-то один раз отсортировать все строчки по порядку и больше к этому не возвращаться?

Спустя 3 минуты, 32 секунды (1.08.2010 - 15:31) umnik90 написал(а):
REANIMATOR
с помощью чего подскажите?

Спустя 2 минуты, 24 секунды (1.08.2010 - 15:33) umnik90 написал(а):
Лелик, если работает phpmyadmin следует искать ошибку в коде. приведите весь листинг.

Спустя 4 минуты, 5 секунд (1.08.2010 - 15:37) Лелик написал(а):
Сорри!!!... Я сортировал во вкладке "обзор", а не в "операциях"... Все заработало, спасибо!

Спустя 11 минут, 7 секунд (1.08.2010 - 15:49) umnik90 написал(а):
REANIMATOR
нашел asort(), но как ей показать, что сортировать нужно по определенному столбцу?

Спустя 32 минуты, 43 секунды (1.08.2010 - 16:21) arvitaly написал(а):
function sortByField($f1,$f2)
{
global $fn;
if($f1[$fn] < $f2[$fn]) return -1;
elseif($f1[$fn] > $f2[$fn]) return 1;
else return 0;
}
$fn='name';
$a=array(array('name'=>'Михаил','family'=>'Архипов'),array('name'=>'Виталий','family'=>'Лабутин'),array('name'=>'Радмир','family'=>'Гараев'));
uasort($a,"sortByField");
print_r($a);
exit;


Функция uasort позволяет задать собственную сортировку

Спустя 30 минут, 50 секунд (1.08.2010 - 16:52) umnik90 написал(а):
arvitaly
не работает:(

result = mysql_query ("SELECT `ad_index`, `ad_date`, `ad_title`, `ad_html`, `district`, `orient`, `phones`, `total_space`, `floors_num`, `state`, `material`, `house_type`, CAST(`price` AS SIGNED) as `price`, `room_count`, `living_space`, `kitchen_space`, `planning`, `floor`, `toilet`, `balcony`, `loggia` FROM zhilcom_class_advert_flat_sale WHERE `district` IN (".$d.") AND `orient` LIKE '$orient'  ", $db);  


$myrow = mysql_fetch_array($result); 

function sortByField($f1,$f2)
{
global $fn;
if($f1[$fn] < $f2[$fn]) return -1;
elseif($f1[$fn] > $f2[$fn]) return 1;
else return 0;
}
$fn='price';
uasort($myrow,"sortByField");


вывожу дальше все do ...... while ($myrow = mysql_fetch_array ($result));

Спустя 2 минуты, 25 секунд (1.08.2010 - 16:55) arvitaly написал(а):
Ну так сортировать нужно весь массив а Вы сортируете одну строку
function sortByField($f1,$f2)
{
global $fn;
if($f1[$fn] < $f2[$fn]) return -1;
elseif($f1[$fn] > $f2[$fn]) return 1;
else return 0;
}
while ($row = mysql_fetch_array ($result))$myrow[]=$row;
$fn='price';
uasort($myrow,"sortByField");


Примерно так

Спустя 6 минут, 58 секунд (1.08.2010 - 17:01) umnik90 написал(а):
arvitaly
быть может я конечно идиот, выводит по одной строке теперь.

 $myrow = mysql_fetch_array($result); 

function sortByField($f1,$f2)
{
global $fn;
if($f1[$fn] < $f2[$fn]) return -1;
elseif($f1[$fn] > $f2[$fn]) return 1;
else return 0;
}

while ($row = mysql_fetch_array ($result))
$myrow[]=$row;
$fn='price';
uasort($myrow,"sortByField");


вывод дальше стандартно? do ...... while ($myrow = mysql_fetch_array ($result));

Спустя 11 минут (1.08.2010 - 17:12) arvitaly написал(а):
а дальше вывод массива

foreach ($myrow as $r)
{
echo $r['price'];
}

Спустя 4 минуты, 56 секунд (1.08.2010 - 17:17) umnik90 написал(а):
arvitaly
вывел, спасибо.

однако, http://slon.dn.ua/zhilcom/zhilcom_in.php ) очень странный результат

Спустя 1 минута, 36 секунд (1.08.2010 - 17:19) umnik90 написал(а):
arvitaly
сортировал по району

Спустя 56 минут, 51 секунда (1.08.2010 - 18:16) arvitaly написал(а):
Что то с кодировкой, напишите подробнее где какую кодировку используете

Спустя 4 минуты, 24 секунды (1.08.2010 - 18:20) umnik90 написал(а):
arvitaly
везде utf-8. сама БД в ней, при запросе так же делаю ее и сама страница на ней же.

Спустя 30 минут, 19 секунд (1.08.2010 - 18:51) arvitaly написал(а):
Можешь сделать дамп?

Спустя 25 минут, 39 секунд (1.08.2010 - 19:16) umnik90 написал(а):
arvitaly
http://slon.dn.ua/zhilcom_class_advert_flat_sale.sql.bz2

спасибо, что участвуете в моих мучениях)

Спустя 41 минута, 19 секунд (1.08.2010 - 19:58) arvitaly написал(а):
так стоп а где район

Спустя 1 день, 46 минут (2.08.2010 - 20:44) REANIMATOR написал(а):
я заметил что у вас на сайте уязвимость... рекомендую её искоренить.
красным отмечено где она находиться...

Цитата
http://www.slon.dn.ua/zhilcom/zhilcom_in.php?key=district DESC

Спустя 5 минут, 45 секунд (2.08.2010 - 20:49) sergeiss написал(а):
Цитата (umnik90 @ 1.08.2010 - 18:01)
вывод дальше стандартно? do ...... while ($myrow = mysql_fetch_array ($result));

Если это "стандартно"... То тогда я очень настойчиво рекомендую забыть про этот цикл при выводе данных из БД и прочитать тему на этом форуме (специально для "жертв поповщины"): http://phpforum.ru/index.php?showtopic=21916

PS. А заодно, может, и другие проблемы проще будет потом решить smile.gif

Спустя 1 день, 1 час, 55 минут, 12 секунд (3.08.2010 - 22:44) umnik90 написал(а):
arvitaly
он в кодах: 0 1 2 3 4 5.... discrit

Спустя 54 секунды (3.08.2010 - 22:45) umnik90 написал(а):
REANIMATOR
я бы рад вас понять, но не могу

Спустя 5 минут, 49 секунд (3.08.2010 - 22:51) umnik90 написал(а):
sergeiss
спасибо) учту)

Спустя 3 минуты, 56 секунд (3.08.2010 - 22:55) umnik90 написал(а):
REANIMATOR
ээммм.. пробел? или так лучше не передавать ключ для сортировки?

Спустя 13 дней, 16 часов, 33 минуты, 38 секунд (17.08.2010 - 15:29) REANIMATOR написал(а):
http://www.slon.dn.ua/zhilcom/zhilcom_in.php?key=district DESC
у вас параметр key не проверялся на уязвимость. т.е. когда я писал любую букву после "district DESC " выходила ошибка SQL. А это может привести к потере данных. Или любому другому вреду который может придумать плохой дядя который портит сайты.
Быстрый ответ:

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