Сортирую 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(), но как ей показать, что сортировать нужно по определенному столбцу?
нашел 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
не работает:(
вывожу дальше все do ...... while ($myrow = mysql_fetch_array ($result));
не работает:(
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
быть может я конечно идиот, выводит по одной строке теперь.
вывод дальше стандартно? do ...... while ($myrow = mysql_fetch_array ($result));
быть может я конечно идиот, выводит по одной строке теперь.
$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 написал(а):
Спустя 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. сама БД в ней, при запросе так же делаю ее и сама страница на ней же.
везде 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
спасибо, что участвуете в моих мучениях)
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. А заодно, может, и другие проблемы проще будет потом решить
Спустя 1 день, 1 час, 55 минут, 12 секунд (3.08.2010 - 22:44) umnik90 написал(а):
arvitaly
он в кодах: 0 1 2 3 4 5.... discrit
он в кодах: 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. А это может привести к потере данных. Или любому другому вреду который может придумать плохой дядя который портит сайты.
у вас параметр key не проверялся на уязвимость. т.е. когда я писал любую букву после "district DESC " выходила ошибка SQL. А это может привести к потере данных. Или любому другому вреду который может придумать плохой дядя который портит сайты.