Как е най-добре да се покаже съдържание

Hous

Registered
Значи понеже аз ползвам един малко объркан начин искам да попитам другите (да кажете от опит) как ще е най-добре да показвам съдържание -примерни полета:
tablica1: item item_2 item_3 categoriq_id
categoriq_tablica1:categoriq_id categoriq_ime categoriq_opisanie

Искам да се покажат по 5 елемента подредени по ID за всяка категория която има като покажем заглавието на категорията след което под него 5те резултата и до недо (в табличка) пак същото но за следващата категория след което едно TR за нов ред и да покажем пак така но за 3 и 4 категория.
Дано ме разбрахте.За мен е малко объркващо и аз тръгнах да правя за всяка категория ръчно заявка със WHERE categoriq_id=X

Ако някой има желание и му се пише примерен код нека пише

:)
 
От това което си показал, мисля, че структурата на таблица1 ти е грешна. Трябва така да я направиш, че на всеки ред да записваш по един продукт и по една категория

[sql]
create table category (
id int(10) unsigned not null primary key auto_increment,
name varchar(255) not null unique
);

create table item (
id int(10) unsigned not null primary key auto_increment,
name varchar(255) not null
);

create table item_category (
id int(10) unsigned not null primary key auto_increment,
item_id int(10) unsigned not null,
category_id int(10) unsigned not null
);

[/sql]

След това листваш категориите, като за всяка от категориите показваш и по 5 продукта:
PHP:
$categorySql = "select * from category order by name";
$categorySet = mysql_query($categorySql) or die(mysql_error());
while($category = mysql_fetch_array($categorySet)){
    echo "<h1>".$category['name']."</h1>\n";

    //взимаш 5 продукта от тази категория
   $itemSql = "select * from item where category_id = '".$category['id']."'  order by name limit 5";
   $itemSet = mysql_query($itemSql) or die(mysql_error());

    if(mysql_num_rows($itemSet) > 0){
          echo "<ul>\n";

          while($item = mysql_fetch_array($itemSet)){
                echo "\t<li>".$item['name']."</li>\n";
          }

          echo "</ul>\n";
    }
    
}
 

Back
Горе