X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
> Сортировка базы данных( помогите пожалйста!)
rusak1
rusak1
Topic Starter сообщение 29.8.2009, 11:41; Ответить: rusak1
Сообщение #1


У меня есть база данных и я вывожу её на страницу, но последний добавленый элемент выводиться в конце!!
можно ли как нибудь по времени (data) сортировать по убыванию чтобы последние добавленые были вначале???
$query = "SELECT name, info, address, data FROM $table";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($res)) {
   echo $row['name'];
    echo $row['info'];
    echo $row['address'];
    echo $row['data']."<br>";
}

ИЗВИНИТЕ ЗА ГЛУПЫЙ ВОПРОС!:sarcastic:
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
testUser_hb
testUser_hb
сообщение 29.8.2009, 11:49; Ответить: testUser_hb
Сообщение #2


В конце SQL запроса добавьте "ORDER BY `id` DESC", а если вы хотите по "дате"... Тут есть несколько нюансов, в каком формате у вас дата? UNIX Timestamp? Тогда всё просто - "ORDER BY `data` DESC". Если же у вас там дата похожая на 2009-08-29, следует сделать "ORDER BY UNIX_TIMESTAMP(`data`) DESC".

BTW Правильно - date, а data - это данные.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rusak1
rusak1
Topic Starter сообщение 29.8.2009, 13:12; Ответить: rusak1
Сообщение #3


ПОДСКАЖИТЕ ПОЧЕМУ НЕ РАБОТАЕТ???:achtung:
$query = "SELECT *  FROM $table ORDER BY `data` DESC ";
$i = 1;
$res = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
$i = $i + 1;
$nazv[i] = $row['name'];
$inf[i] = $row['info'];
$ssylka[i] =  $row['address'];
$chas[i] =  $row['data'];
}
for     ($i=1;    $i<=9;    $i++)
{
echo $nazv[i];
echo $inf[i];
echo $ssylka[i];
echo $chas[i];
}

ПОДСКАЖИТЕ ПОЧЕМУ НЕ РАБОТАЕТ???:achtung:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
testUser_hb
testUser_hb
сообщение 29.8.2009, 13:22; Ответить: testUser_hb
Сообщение #4


Во-первых - что именно не работает?

И вообще... Предположу, что дата у вас не в формате UNIX timestamp:
[php]
$res = mysql_query('SELECT * FROM '.$table.' ORDER BY UNIX_TIMESTAMP(`data`) DESC') or die(mysql_error());
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_array($res)) {
echo($row['name'] . ' ' . $row['info'] . ' '
. $row['address'] . ' ' . $row['data']);
}
}
[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rusak1
rusak1
Topic Starter сообщение 29.8.2009, 13:30; Ответить: rusak1
Сообщение #5


у меня дата в формате TEXT и давай на ты??? А с этим я уже разобрался
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
testUser_hb
testUser_hb
сообщение 29.8.2009, 13:38; Ответить: testUser_hb
Сообщение #6


Я так понимаю, что вопросов больше нет? (Если дата не UNIX timestamp(, т.е. не 10 цифр), то её необходимо конвертировать с использованием функции UNIX_TIMESTAMP, чтобы делать по ней ORDER BY. (Выше я это продемонстрировал.))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 30.8.2009, 19:48; Ответить: Apay
Сообщение #7


testUser, небольшое уточнение, если поле имеет тип DATE, DATETIME и пр., то сортировка тоже происходит корректно без всякого преобразования, а типа UNIX timestamp вообще-то нет (это наверное INT)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
testUser_hb
testUser_hb
сообщение 30.8.2009, 20:07; Ответить: testUser_hb
Сообщение #8


Apay, многоуважаемый, сейчас уже не вспомню, почему я посоветовал преобразовывать в UNIX timestamp, но в своё время столкнулся с проблемой некорректной сортировки по DATETIME.

По-поводу "нет типа": UNIX timestamp можно и в VARCHAR хранить, суть не в этом... Между прочим, я никогда не утверждал, что существует такой "тип", а если же случайно оговорился, приношу свои искрение извинения.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 30.8.2009, 20:25; Ответить: Apay
Сообщение #9


странно, типы DATE и пр. сортируются всегда корректно, может вы хранили тату в поле другого типа?

если хранить timestamp в VARCHAR то сортировки как таковой не будет (нужно очередное преобразование типов), кстати unix timestamp - это просто целое положительное число (integer), обознаяающее количество секунд эпохи unix (c 1970 года).

насчет оговорок - у меня тоже такое бывает, а может я просто не так понял, тогда sorry, в общем мир-дружба-жвачка :beer:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
rusak1
rusak1
Topic Starter сообщение 9.9.2009, 18:02; Ответить: rusak1
Сообщение #10


Как сделать чтобы вы водились все записи у которых в полу name первая буква x ????
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
4 страниц V   1 2 3 4 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Базы Youtube кейвордов с данными по конкуренции и Volume
3 Krok 1033 20.3.2024, 14:59
автор: ManagerAE8888
Горячая тема (нет новых ответов) Свежие базы ключевых слов с подсказок гугла!
123 Krok 67726 20.3.2024, 14:58
автор: ManagerAE8888
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
20 Krok 6223 18.3.2024, 5:43
автор: Krok
Открытая тема (нет новых ответов) Интеграция спортивных данных API. Коэффициенты БК, Live результаты
14 yaroslav89 6628 13.3.2024, 23:16
автор: spoyer_ru
Открытая тема (нет новых ответов) Базы досок объявлений России, Украины, Беларуси и Казахстана
5 freeax 6406 10.3.2024, 15:07
автор: freeax


 



RSS Текстовая версия Сейчас: 29.3.2024, 1:34
Дизайн