Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Случайный вывод с сортировкой

Сообщения:  [1-10]   [11-17] 

 
 автор: Елена Смирнова   (04.03.2009 в 20:10)   письмо автору
 
   для: Trianon   (04.03.2009 в 17:58)
 

А как можно? Как нужно?

  Ответить  
 
 автор: Елена Смирнова   (04.03.2009 в 19:58)   письмо автору
 
   для: Axxil   (04.03.2009 в 19:31)
 

Там же написано, что так нельзя... а в теме SQL у меня не работает LIMIT во встроенном запросе

  Ответить  
 
 автор: Axxil   (04.03.2009 в 19:31)   письмо автору
 
   для: Елена Смирнова   (04.03.2009 в 18:26)
 

может стоит посмотреть чуть выше?

  Ответить  
 
 автор: Елена Смирнова   (04.03.2009 в 18:26)   письмо автору
 
   для: Елена Смирнова   (04.03.2009 в 18:12)
 

Может ктонить поможет кодом, у меня все дело из-за этой выборки стоит (((

  Ответить  
 
 автор: Елена Смирнова   (04.03.2009 в 18:12)   письмо автору
 
   для: nikita2206   (04.03.2009 в 17:40)
 

А как перемешать массивы, чтобы ячейки совпали?
Не выходит ничего :(((

  Ответить  
 
 автор: Axxil   (04.03.2009 в 18:05)   письмо автору
 
   для: Trianon   (04.03.2009 в 17:58)
 

> Так нельзя, поскольку элементы массива будут сравниваться не как числа, а как символьные строки.

О, сенкс, об этом как-то не подумал

  Ответить  
 
 автор: Trianon   (04.03.2009 в 17:58)   письмо автору
 
   для: Axxil   (04.03.2009 в 17:40)
 

>
  return ($a[cena] < $b[cena]) ? -1 : 1;

Так нельзя, поскольку элементы массива будут сравниваться не как числа, а как символьные строки.

Обычно пишут проще: return $a[cena] - $b[cena];


И как оказалось, в некоторых случаях результат достижим средствами MySQL.
См. http://softtime.ru/forum/read.php?id_forum=3&id_theme=63155
Хотя это не тот метод, который я стал бы рекомендовать применять, даже если он работает...

  Ответить  
 
 автор: Axxil   (04.03.2009 в 17:40)   письмо автору
 
   для: Елена Смирнова   (04.03.2009 в 17:24)
 

<?
$query 
mysql_query("select id, name, cena, balans from `adv` where `balans` > '0,04' and `ok`='1' order by rand() desc LIMIT 5;");
$array = array();
while(
$row mysql_fetch_array($query)){
  
$array[] = $row;

usort($array,create_function('$a,$b','return ($a[cena] < $b[cena]) ? -1 : 1;'));
// массив array отсортирован по значению поля cena
?>

  Ответить  
 
 автор: nikita2206   (04.03.2009 в 17:40)   письмо автору
 
   для: Елена Смирнова   (04.03.2009 в 17:35)
 

думаю будет лучше если сами поймете.... просто образуйте еще один(два) массив в цикле while где идет обработка mysql_fetch_array и после этого в foreach подставляйте значения массива....

  Ответить  
 
 автор: Елена Смирнова   (04.03.2009 в 17:35)   письмо автору
 
   для: nikita2206   (04.03.2009 в 17:30)
 

Попробовал с вашим кодом, но применив RSORT, но как мне вывести не сами цены, а данные id и name

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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