С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/56: Рейтинг темы: голосов - 56, средняя оценка - 4.98
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41

Сортировка по дате

17.02.2011, 17:09. Показов 10442. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть список новостей, который выводится в цикле. Новости содержаться в базе. мне надо сделать возможность выбора сортировки по автору и дате выхода, т.е надо сделать 2 кнопки, по нажатию на которые происходила бы нужная сортировка. Покажите какой-нибудь минимальный пример
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2011, 17:09
Ответы с готовыми решениями:

Сортировка по дате
Вывод данных в таблицу. Как сделать так, чтобы при выводе они сортировались по дате (от высшего к низшему). <?php $db =...

Сортировка по дате
вот код, надо чтобы выдача была по active date. не могу понять куда сорт вставить спасибо за ранее добрые люди $sql =...

Сортировка по дате
$result = mysql_query('SELECT * FROM `login` WHERE `user_id`='.$_GET.' GROUP BY `user_agent`,`ip` ORDER BY `datevhod` DESC LIMIT 10'); ...

14
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 17:26
PHP
1
2
3
4
5
6
7
8
if ($_POST['first_knopka']) {
    $q = "SELECT * FROM имя_твоей_таблицы ORDER BY имя_поля_даты";
    // дальнейшие действия
}
elseif ($_POST['second_knopka']) {
    $q = "SELECT * FROM имя_твоей_таблицы ORDER BY имя_поля_автора";
    // дальнейшие действия
}
Добавлено через 3 минуты
если надо чтобы выводилась последняя дата первой (то же и для автора), то в конец запроса добавь - DESC
1
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 17:54  [ТС]
Это я пониманию, я туплю какие параметры кнопке описать, опиши пожалуйста и кнопки
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 18:08
просто делаешь 2 кнопки
PHP
1
2
<input type='submit' name='first_knopka'>
<input type='submit' name='second_knopka'>
Добавлено через 59 секунд
т.е. кнопки обнаруживаются по параметру name
0
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 18:12  [ТС]
т.е., грубо говоря вот такой код должен работать
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if ($_POST['first_knopka']) {
    $q = "SELECT * FROM news ORDER BY date";
    // дальнейшие действия
}
elseif ($_POST['second_knopka']) {
    $q = "SELECT * FROM news ORDER BY author";
    // дальнейшие действия
 
<form>
<input type='submit' name='first_knopka'>
<input type='submit' name='second_knopka'>]
</form>
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 18:18
да, но я бы форму поставил впереди и немного подправил
PHP
1
<form method='POST'>
если скрипт выполняет этот же файл то action можешь не добавлять
0
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 20:03  [ТС]
Все прописал, но кнопки не работают. Вот код всей страницы, может быть, где увидишь ошибки?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php 
include ("blocks/bd.php");   /*соединение с базой*/
 
$result = mysql_query ("SELECT id, title, cat, short_description, author, date FROM news  ",$db);
 
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Сообщите об этом администратору по e-mail a-d-a-m-s@mail.ru
<br><strong>Код ошибки</strong></p>";
exit (mysql_error());
}
 
if (mysql_num_rows ($result)>0)
{
$myrow = mysql_fetch_array($result);
}
 
else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет  записей</p>";
exit ();
}
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 
<meta name="description" content=">">
<meta name="keywords" content="">
 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>ЛЕНТА НОВОСТЕЙ</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body>
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
 <?php include("blocks/header.php"); ?>
  <?php include ("blocks/menu.php"); ?>
    </table>
   
 <form method='POST'>
    <input type='submit' name='first_knopka' value='Сортировка по дате'>
    <input type='submit' name='second_knopka' value='Сортировка по автору'>
 </form>
 
  <?
    if ($_POST['first_knopka']) {
    $q = "SELECT * FROM news ORDER BY date";
 
    }
    elseif ($_POST['second_knopka']) {
    $q = "SELECT * FROM news ORDER BY author";
    // дальнейшие действия
    }
     
    do { 
       printf ("<table align='center' class='post'>
       <tr>
       <td class='post_title'>
       <p class='post_name'><a href='view_post.php?id=%s'>%s</a></p>
       <p class='post_cat'>Категория:%s</p>
       <p class='post_attrs'>%s</p>
       <p class='post_attrs'>Дата добавления:%s</p> 
       <p class='post_attrs'>Автор:%s</p>
       
       </table><br><br>", $myrow["id"], $myrow["title"], $myrow["cat"], 
                          $myrow["short_description"], $myrow["date"], $myrow["author"]);
       }
    while ($myrow = mysql_fetch_array ($result));
       ?>   
       
  <?php include ("blocks/footer.php"); ?>
</body>
</html>
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 20:13
Цитата Сообщение от a-d-a-m-s Посмотреть сообщение
if ($_POST['first_knopka']) {
* * $q = "SELECT * FROM news ORDER BY date";
}
* * * * elseif ($_POST['second_knopka']) {
* * $q = "SELECT * FROM news ORDER BY author";
* * // дальнейшие действия
* * * * }
написано же в коменте - * * // дальнейшие действия
т.е. здесь тоже надо mysql_query, mysql_fetch_array ... и все что связано с выводом

Добавлено через 2 минуты
вот этот цикл, к примеру, перетащи в условия if, ifelse, только там будет уже не массив $myrow, а создай новый для данного запроса
0
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 20:44  [ТС]
Я наверное полный ...., но напиши мне пожалуйста, как это будет выглядеть
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 20:58
так попробуй ка
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
if ($_POST['first_knopka']) {
    $q = "SELECT * FROM news ORDER BY date";
    $r = mysql_query($q);
 
    while ($myrow2 = mysql_fetch_array ($r));
    { 
           printf ("<table align='center' class='post'>
           <tr>
           <td class='post_title'>
           <p class='post_name'><a href='view_post.php?id=%s'>%s</a></p>
           <p class='post_cat'>Категория:%s</p>
           <p class='post_attrs'>%s</p>
           <p class='post_attrs'>Дата добавления:%s</p> 
           <p class='post_attrs'>Автор:%s</p>
           
           </table><br><br>", $myrow2["id"], $myrow2["title"], $myrow2["cat"], 
                        $myrow2["short_description"], $myrow2["date"], $myrow2["author"]);
     }
        
}
elseif ($_POST['second_knopka']) {
    $q = "SELECT * FROM news ORDER BY author";
    $r = mysql_query($q);
 
    while ($myrow2 = mysql_fetch_array ($r));
    { 
           printf ("<table align='center' class='post'>
           <tr>
           <td class='post_title'>
           <p class='post_name'><a href='view_post.php?id=%s'>%s</a></p>
           <p class='post_cat'>Категория:%s</p>
           <p class='post_attrs'>%s</p>
           <p class='post_attrs'>Дата добавления:%s</p> 
           <p class='post_attrs'>Автор:%s</p>
           
           </table><br><br>", $myrow2["id"], $myrow2["title"], $myrow2["cat"], 
                        $myrow2["short_description"], $myrow2["date"], $myrow2["author"]);
     }
}
 
?>
свой цикл do - while убери

Добавлено через 2 минуты
a-d-a-m-s, а твой код че-нить выводит?
0
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 23:21  [ТС]
Попробовал.
Так данные из базы вообще не вытягивает
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
17.02.2011, 23:25
че пишет? белый экран?
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
17.02.2011, 23:33
зачем вам кнопки, сделай ссылки... для type="submit" name не указывается, вроде... и соответственно ничего не передается... type="submit" просто заставляет отправлять форму
0
0 / 0 / 1
Регистрация: 26.11.2010
Сообщений: 41
17.02.2011, 23:35  [ТС]
Ну если в общем, то да.
Но если в твоем коде, while переписать на do-while, то при нажатии на кнопки выводит отсортированные новости
0
 Аватар для Tatsu_real
96 / 96 / 7
Регистрация: 14.02.2011
Сообщений: 238
17.02.2011, 23:44
а если без инпутов нельзя то они вообщето описываются так
<INPUT TYPE=SUBMIT NAME="checkout" VALUE="YES">
<INPUT TYPE=SUBMIT NAME="checkout" VALUE="NO">
а потом только в ПХП проверяется $_POST["checkout"] == "YES" или $_POST["checkout"] == "NO"
так грубо говоря валиднее и надежнее, чем меньше доп переменных тем лучше

Добавлено через 7 минут
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
while ($myrow2 = mysql_fetch_array ($r));
убери ; в конце строки и еще в 7 строчке тоже убери ;
поэтому у тебя скрипт и не работал)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2011, 23:44
Помогаю со студенческими работами здесь

Сортировка по дате
Всем привет! Хочу вывести последние поступления в магазин делаю вот такой запрос: select Firm,Model,Price,Link,ImgNm from Notebooks order...

Сортировка по дате!
В таблице в каждой записи присутствует дата! мне надо в запросе отсартировать выбраные записи по дате по убыванию! с самай позней даты до...

Сортировка по дате sql
Нужно сортировать данные в таблице по дате и времени одновременно: сначала новые записи, потом старые. Использую такой запрос: (SELECT...

Сортировка по дате и цене!
Помогите сделать сортировку по дате и цене.У меня есть 2 поля date,price находиться в таблице adverts .Нужно сделать сортировку как на...

Сортировка в БД по дате и времени
Добрый день. Я только начинаю изучать PHP и MySql. Не получается отсортировать записи из БД, прошу Вашей помощи. В чем ошибка, помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru