Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Категории и подсчёт файлов в них |

01.02.2010, 16:20
|
|
Познающий
Регистрация: 01.06.2009
Сообщений: 38
Провел на форуме: 80872
Репутация:
2
|
|
Категории и подсчёт файлов в них
Код:
Привет ачатовцам. Есть вопрос:
Вот мы имеем 2 таблицы.(mysql)
1 таблицы с категориямя
id | id_parent | name
----------------------------
1 | 0 | Программы
----------------------------
2 | 1 | Для телефонов
----------------------------
3 | 1 | Для компа
----------------------------
4 | 3 | Для брута
-------------------------------
Категории выведутся как:
-- Программы
-- Для телефонов
-- Для компа
-- Для брута
И есть таблица с файлами:
id | cat_id | name
----------------------------
1 | 3 | Файл 1
----------------------------
2 | 3 | Файл 2
----------------------------
3 | 3 | Файл 3
----------------------------
4 | 3 | Файл 4
-------------------------------
Как сделать на php подсчёт чтобы считались файлы в категориях по примеру:
-- Программы (4)
-- Для телефонов (0)
-- Для компа (4)
-- Для брута (4)
Кто что подскажет? Чем поможет? :)
|
|
|

01.02.2010, 16:38
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
SELECT count(id) FROM table
||
$hand = mysql_query("SELECT id FROM table");
echo mysql_num_rows($hand);
|
|
|

01.02.2010, 16:45
|
|
Познающий
Регистрация: 01.06.2009
Сообщений: 38
Провел на форуме: 80872
Репутация:
2
|
|
И как так быдет выводить количеств файлов из под категорий в основную?
Тоесть если глубоко в какой то подкатегории лежало 4 файла нппример, то в основной категории отображалось бы что всего 4 файла
Код:
-- Программы (4)
-- Для телефонов (0)
-- Для компа (4)
-- Для брута (4)
[Файл 1]
[Файл 2]
[Файл 3]
[Файл 4]
Последний раз редактировалось Wakko; 01.02.2010 в 16:49..
|
|
|

01.02.2010, 16:53
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
Ну ппц.
Ты не наисал название таблиц -> назовем 1 таблицу с категориями - `categs`, 2 - `files`
PHP код:
...
$handle = mysql_query("SELECT id,title FROM categs");
while(list($id,$title) = mysql_fetch_row($handle)) {
echo "Категория \"$title\" - файлов (".mysql_num_rows(mysql_query("SELECT id FROM files WHERE cat_id = $id")).") <br />";
}
...
Самый простой вариант
|
|
|

01.02.2010, 17:10
|
|
Познающий
Регистрация: 01.06.2009
Сообщений: 38
Провел на форуме: 80872
Репутация:
2
|
|
А как сделать посчёт если выводятся вот так
Код:
Программы [id = 1] ->
Для смартов [parent_id = 1]
Для Компа [parent_id = 1]
Тут считает только когда просматриваеш категорию для которой предназначен файл, а мне нужно чтобы считались файлы в подкатегориях и выводилось колличество в основную.
|
|
|

01.02.2010, 17:13
|
|
Познающий
Регистрация: 01.06.2009
Сообщений: 38
Провел на форуме: 80872
Репутация:
2
|
|
Код:
<?php
$category = intval($_GET['category']);
if ($category != 0) {
$tpl->load_tpl('downloads.tpl');
$tpl->set_block("'\\[category\\](.*?)\\[/category\\]'si", "");
$tpl->set('[cat_navigation]', '');
$tpl->set('[/cat_navigation]', '');
$tpl->set('{navigation}', name_cat($category));
$tpl->compile('content');
$tpl->clear();
}
if ($category) {
$where_cat = "WHERE id_parent = '$category'";
$where_files = "WHERE category = '$category'";
} else {
$where_cat = "WHERE id_parent = 0";
$where_files = "WHERE category = 0";
}
$downloads_files_sql = $db->query("SELECT * FROM downloads_files $where_files");
$downloads_cat_sql = $db->query("SELECT * FROM downloads_category $where_cat ORDER BY position DESC");
$i = 0;
while ($row = $db->get_row($downloads_cat_sql)) {
$i ++;
$tpl->load_tpl('downloads.tpl');
$tpl->set_block("'\\[cat_navigation\\](.*?)\\[/cat_navigation\\]'si", "");
$tpl->set('[category]', '');
$tpl->set('[/category]', '');
$coun = $db->super_query("SELECT count(*) as count FROM downloads_files WHERE category = '{$row['id']}'");
$tpl->set('[cat_link]', '<a href="' . $PHP_SELF . '?do=downloads&category=' . $row['id'] . '">');
$tpl->set('[/cat_link]', '</a>');
$tpl->set('{count}', $coun['count']);
$tpl->set('{category}', check_full($row['name']));
$tpl->compile('content');
$tpl->clear();
}
$b = 0;
while ($row = $db->get_row($downloads_files_sql)) {
$buffer .= $row['title'];
$buffer .= '<br>';
$b++;
}
if ($i == 0 and $b == 0) {
$buffer .= 'В данной категории ничего нет.<br>';
}
$tpl->copy_tpl = $buffer . '<br>';
$tpl->compile('content');
$tpl->clear();
?>
|
|
|

01.02.2010, 17:58
|
|
Новичок
Регистрация: 12.12.2007
Сообщений: 4
Провел на форуме: 8986
Репутация:
0
|
|
SELECT COUNT(*) FROM files WHERE cat_id = АйДи категории, которую рисуешь в данный момент
а еще лучше и красивее, если названия категорий выбираются из базы, сделать JOIN и выбрать из таблицы файлов количество файлов, сгруппированных по айдишнику категорий
Последний раз редактировалось deedoc; 01.02.2010 в 18:38..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|