У меня проблемы с выяснением, как запрашивать каждый элемент в определенной категории и перечислять только 10 последних элементов по дате. Вот мой макет стола:
<code>download_categories
category_id (int) primary key
title (var_char)
parent_id (int)
загрузок
id (int) первичный ключ
title (var_char)
category_id (int)
дата (дата)
Мне нужно запросить каждый файл в основной категории, которая, скажем, имеет 100 элементов и 5 дочерних категорий и выплевывает только последние 10 добавленных. Сейчас у меня есть функции, которые просто складывают все файлы, чтобы я мог получить счетчик по категории, но я не могу изменить код, чтобы отображать только определенное количество элементов на основе даты.
Я изменил код, который я использую для подсчета всех файлов в категории и ее дочерних элементов, чтобы вывести список файлов. Основная проблема заключается в том, что когда я добавляю предложение LIMIT в свой SQL, оно просто ограничивает результаты, перечисленные в этой категории, а не общий запрос.
Код помещает все категории загрузок в массив, а затем перебирает каждую из них, запрашивая загрузки с этим category_id.
Мой лучший выбор - поместить результаты в массив, а затем отсортировать их оттуда?
function list_cat_files($parent, $start) {
global $menu_array;
if($start == 1) {
unset($GLOBALS["total"]);
$query = mysql_query("SELECT * FROM download_categories");
while ( $row = mysql_fetch_assoc($query) ) {
$menu_array[$row['category_id']] =
array(
'name' => $row['title'],
'parent' => $row['parent_id'],
'category_id' => $row['category_id']);
}
}
foreach($menu_array as $key => $value) {
global $total;
if ($value['parent'] == $parent) {
$category_id = $value['category_id'];
$query1 = mysql_query("SELECT lid AS id, title, date, category_id FROM downloads WHERE category_id='$category_id'");
while($item = mysql_fetch_array($query1)) {
$total .= "--- ($item[lid]) : $item[title] <BR><BR>";
}
list_cat_files($key, 0);
}
}
return $total;
}