Ben sorun belli bir kategori içinde her öğe sorgulamak ve yalnızca tarihe göre yeni 10 öğeleri listelemek için nasıl sergiyi yaşıyorum. İşte benim masa düzeni:
download_categories
category_id (int) primary key
title (var_char)
parent_id (int)</pre></code>
downloads
id (int) primary key
title (var_char)
category_id (int)
date (date)</pre></code>
Ben diyelim ki bir ana kategorisinde her dosyayı sorgulamak gerekiyor, diyelim ki, 100 madde ve 5 çocuk kategoriler var ve sadece tükürmek son 10 eklendi. Ben kategoriye göre bir sayı alabilirsiniz böylece sadece tüm dosyaları eklemek şu anda işlevleri var, ama ben sadece tarihe dayalı öğelerin belirli bir miktar görüntülemek için kodunu değiştirmek için görünmüyor olabilir.
Ben dosyaları listelemek için tüm bir kategoride dosyaları ve çocuklar saymak kullanıyorum kod güncellenmiştir. Asıl sorun benim bir SQL LIMIT ifadesini eklediğinizde, sadece bu kategoride değil, genel sorgu listelenir sonuçları kısıtlar.
Kod bu category_id ile indirme sorgulama her biri aracılığıyla döngüsü sonra bir dizideki tüm indirme kategorileri koyar.
Benim en iyi bahis bir dizi sonuçları koymak ve daha sonra oradan sıralamak olduğunu?
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;
}