Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сортировка списка на php
Форумы портала PHP.SU » » Работа с СУБД » Сортировка списка на php

Страниц (1): [1]
 

1. AbrakadabrA - 07 Июня, 2011 - 22:59:52 - перейти к сообщению
Доброго времени суток читающему! )
Дело такое.
Есть таблица в MySQL со столбцами "дата", "покупка", "цена".
В ней забито несколько покупок.
Шлю запрос на получение всего этого добра, в результате получаю массив.
В дальнейшем хочу чтобы на странице покупки каждой даты сортировались по отдельным DIVам, но для этого мне надо как то сортировать строки из таблицы по датам.

Подкиньте пжлс идею, весь моск расковырял, незнаю как сие чудо сотворить... (((
2. DlTA - 07 Июня, 2011 - 23:06:44 - перейти к сообщению
1
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT ... FROM ... [WHERE ...] ORDER BY ...
посмотрите "ORDER BY";
или
2 usort.
3. AbrakadabrA - 07 Июня, 2011 - 23:21:13 - перейти к сообщению
Насколько я понимаю, если использовать первый вариант то с ростом строк в таблице, будет расти и количество запросов в БД.
А вот второй вариант надо обмозговать.
Спасибо за ответ )
4. Давит - 07 Июня, 2011 - 23:32:42 - перейти к сообщению
ORDER BY дата - Сортировка массива по дате
ORDER BY дата DESC - Сортировка массива по дате на обратном поратке

PHP:
скопировать код в буфер обмена
  1. $rezult = mysql_query("SELECT * FROM ваш_таблица ORDER BY дата");
  2. $row = mysql_fetch_array($rezult); //в массиве $row есть полное  содержание таблицы "ваш_таблица"
  3.  


AbrakadabrA пишет:
В дальнейшем хочу чтобы на странице покупки каждой даты сортировались по отдельным DIVам,

PHP:
скопировать код в буфер обмена
  1.  
  2. do
  3.     {
  4.  
  5. echo"<div> ".$row["дата"]."  </div>";
  6.  
  7.     }
  8. while($row = mysql_fetch_array($rezult))
5. DeepVarvar - 08 Июня, 2011 - 00:26:59 - перейти к сообщению
Давит пишет:
do
Ни вкоем случае нельзя!!! Если в таблице нет записей - будет ошибка!!!
6. molchun201 - 08 Июня, 2011 - 00:30:17 - перейти к сообщению
do - вроде как вообще плохой стиль говорят Растерялся
7. DlTA - 08 Июня, 2011 - 01:22:41 - перейти к сообщению
AbrakadabrA пишет:
Насколько я понимаю, если использовать первый вариант то с ростом строк в таблице, будет расти и количество запросов в БД.
НЕТ, это один запрос, и если не намечается каких нить напряжных и ненужных манипуляций с данными
то он приоритетней, так как обработка данных в MySQL происходит гораздо быстрее чем в PHP
8. Мелкий - 08 Июня, 2011 - 09:12:07 - перейти к сообщению
molchun201 пишет:
do - вроде как вообще плохой стиль говорят

Важно понимать работу циклов их отличия цикла с постусловием от цикла с предусловием. С подачи какого-то альтернативно одарённого человека, do {} while используют для обхода результата запроса, однако подобная конструкция неверно обрабатывает ситуацию, когда запрос не вернул ни одной строки.

Давит пишет:
$row = mysql_fetch_array($rezult); //в массиве $row есть полное содержание таблицы "ваш_таблица"

Нет, не так. В массиве $row содержимое первой строки результата.
9. Comatose - 08 Июня, 2011 - 10:47:17 - перейти к сообщению
1. для понимая как по мне проще использовать foreach, либо обычный while. только туда надо передать массив в любом случае, пусть он даже будет пустым.
2. если вы боитесь за кол-во данных, кто мешает использовать LIMIT ? и сделать пейджер.
3. если вообще неохота насиловать базу, тогда просто можно испольщовать jQuery DataTables ;)

 

Powered by ExBB FM 1.0 RC1