Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84

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

05.06.2015, 18:47. Показов 795. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Вывожу новости в фориче
Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=538743&stc=1 &d=1433518956

используя сл. код
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$goods = selectAll();
foreach($goods as $item){
?>
        <table style="border: 1px solid silver;">
        <tr>
            <td><img  src="<?=$item["photo"]?>" width="150" height="90" border="0"></td>
            <td >
            <h2 ><?=$item["komy"]?></h2>
            <?=$item["trebovanie"]?> <a href="podpis.php?id=<?=$item['id']?>"> Читать далее >></a>
            </td>
              <tr>
        <td><?=$item["fio"]?><br><p>г.<?=$item["gorod"]?></td>
        <td style="color:red">Кол-во подписей :<?=col_podpisei($item["id"])?></td>
        </tr>
        </tr>   
        <tr>
        
<?php
}
?>
функция col_podpise
PHP
1
2
3
4
5
6
function col_podpisei($id){
    $sql = "SELECT * FROM people where  nomer = $id";
    $result =  mysql_query($sql) or die(mysql_error());
    $num_rows = mysql_num_rows($result);
    return  $num_rows;  
}
Требуется отсортировать новости по кол-ву подписей.
Пробовал дописывать ORDER BY $id DESC к запросу, не получается. Подскажите как это сделать.
Миниатюры
Сортировка новостей по количеству подписей  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2015, 18:47
Ответы с готовыми решениями:

Вывод новостей по количеству комментариев
Помогите плисс, в инете не могу найти ответ, на форуме нашел пару похожих тем, но я пока малознаком с MySQL и не смог найти &quot;5...

Сортировка по количеству
Есть функция: function WGetUsers() { $query = &quot;SELECT * FROM `pack` WHERE `users` &lt;&gt; '1'&quot;; $res = mysql_query($query); ...

Сортировка по количеству строк
$sql = 'SELECT * FROM users WHERE reftop &gt;= 0 ORDER BY reftop DESC'; $rs = mysql_query($sql); $anum1 = mysql_num_rows($rs); $i =...

10
Заблокирован
05.06.2015, 19:19
Ничего не понятно. Человек может подписаться только под одним требованием?

Добавлено через 8 минут
Если в people вы храните подписи, а не людей, сгруппируйте по number с подсчетом количеств для каждой группы и присоедините к основной таблице.
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
05.06.2015, 19:55  [ТС]
один человек может подписать одну петицию один раз
В таблице пипл есть поле nomer - это номер петиции которую он подписал
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
05.06.2015, 19:56  [ТС]
вот
Миниатюры
Сортировка новостей по количеству подписей  
0
Заблокирован
05.06.2015, 20:06
В любом случае мой совет поможет. Результирующую таблицу потом просто отсортируете по полю "количество подписей". Это избавит вас от необходимости выполнять запрос по каждому требованию для выяснения количества подписей.
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
05.06.2015, 20:53  [ТС]
А как это сделать?
сгруппируйте по number с подсчетом количеств для каждой группы и присоедините к основной таблице
0
Заблокирован
05.06.2015, 21:00
См. LEFT JOIN, COUNT, GROUP BY. Или выложите дампы ваших таблиц, я попробую сконструировать запрос.
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
06.06.2015, 10:34  [ТС]
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
<?php
define("DB_HOST", "localhost");
define("DB_LOGIN", "root");
define("DB_PASSWORD", "");
define("DB_NAME", "petition2");
mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die(mysql_error());
$sql = 'CREATE DATABASE '.DB_NAME;
mysql_query($sql) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
$sql = "
CREATE TABLE sozdanie (
    id int(11) NOT NULL auto_increment,
    kategory varchar(30) NOT NULL default '',
    komy varchar(250) NOT NULL default '',
    trebovanie varchar(250) NOT NULL default '',
    opisanie text NOT NULL default '',
    fio varchar(250) NOT NULL default '',
    gorod varchar(50) NOT NULL default '',
    date varchar(20) NOT NULL default '',
    photo varchar(90) NOT NULL default '',
    PRIMARY KEY (id)
)";
mysql_query($sql) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
$sql = "CREATE TABLE people (
    id int(11) NOT NULL auto_increment,
    im varchar(50) NOT NULL default '',
    family varchar(50) NOT NULL default '',
    email varchar(50) NOT NULL default '',
    gorod varchar(50) NOT NULL default '',
    nomer varchar(20) NOT NULL default '',
    date varchar(20) NOT NULL default '',
    PRIMARY KEY (id)
)";
mysql_query($sql) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
$sql = "CREATE TABLE  users (
id int(3) NOT NULL auto_increment,
login varchar(15) NOT NULL default '',
password varchar(15) NOT NULL default '',
PRIMARY KEY (id))";
mysql_query($sql) or die(mysql_error());
 
$sql = "CREATE TABLE  podpis (
id int(8) NOT NULL auto_increment,
petit_id varchar(15) NOT NULL default '',
user_id varchar(25) NOT NULL default '',
PRIMARY KEY (id))";
mysql_query($sql) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
mysql_close();
 
echo '<p>Структура базы данных успешно создана!</p>';
?>
0
Заблокирован
06.06.2015, 11:20
Насколько я понимаю, последние две таблицы к делу не относятся. А сами данные где, чтобы я их не выдумывала? Выложите хотя бы те три требования и четыре подписи, которые вы показывали.
0
Заблокирован
06.06.2015, 12:54
В общем примерно так:
SQL
1
SELECT * FROM `sozdanie` LEFT JOIN (SELECT `nomer` AS `id`, COUNT(`nomer`) AS `count` FROM `people` GROUP BY `nomer`) AS `tmp` USING(`id`) ORDER BY `count` DESC
Там еще нужно будет как-то представить значения NULL в последнем столбце для тех требований, у которых нет ни одной подписи.
Миниатюры
Сортировка новостей по количеству подписей  
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
06.06.2015, 13:03  [ТС]
Таблица Подпись используется, в ней храниться номер петийи

Добавлено через 2 минуты
Используется таблица подпись , в ней храниться номер подписанной петиции и имя пользователя его подписавшую.
Данные из головы бери ,я пока также делаю

Добавлено через 4 минуты
Понятия не имею как его в форич запихнуть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2015, 13:03
Помогаю со студенческими работами здесь

Сортировка новостей
Вот у меня стоит задача осуществления сортировки новостей. Я сделал drag &amp; drop сортировку новостей. Если количество новостей небольшое,то...

Сортировка слов по количеству букв
Задача примерно такая: Мы вводим в консоль строку например - &quot;Hi my name is Jin nise to meet you&quot; Ответ должен придти - 2 3 4...

Сортировка по количеству символов в столбцах
всем привет! помогите пожалуйста доделать задание :sorry: В первых 10 столбцах рабочего листа находятся сведения о сотрудниках фирмы....

Сортировка строк по количеству символов
Доброго времени суток. Как отсортировать массив строк по количеству символов? В массиве несколько строк и при использовании Array.Sort()...

Сортировка по количеству символов в стобце
Сортировка или фильтрация Возможно ли в Excel 2003 отобразить в строке только значения, в которых количество символов больше, к...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru