|
Тема |
Re: рекурсия и масиви [re: ro6avia] |
|
Автор | k (Нерегистриран) | |
Публикувано | 26.01.03 11:19 |
|
|
записите трябва да са подредени по азбучен ред.
например
....
music->classic->trio
....
music->pop>duo
music->pop>trio
естествено, че с една заявка мога да извадя всички записи, но те не могат да бъдат подредени както аз искам. с order by Category, се получава следната боза:
....
classic
duo
music
trio
trio
.... i t.n.
изходът трябва да е подреден по всяко ниво на дървото. Абе с проста заявка не става.
eтo структура на таблицата:
Field Type Null Key Default Extra
Rid varchar(16) PRI
Category varchar(48) MUL
ImgURL varchar(96)
AltTag varchar(30)
ParentRid varchar(16)
Posting enum('0','1') 1
(моля да не се коментира защо структурата е точно такава, защо рида ми е варчар и тем подобни)
ето в момента действащата ф-я:
function F_getOrderedCats($currid) {
global $db;
$sql = "SELECT c.*,count(b.Rid) as NumArtists FROM T_Categories as c ";
$sql .="LEFT JOIN T_ArtBelongs as b on c.Rid = b.Category ";
$sql .="WHERE c.ParentRid='$currid' ";
$sql .="GROUP BY c.Rid ";
$sql .="ORDER BY c.Category";
$result = mysql_query($sql,$db);
while ($B = @mysql_fetch_array($result)) {
$output .= "<tr>\n";
$output .= "<td>" . F_WhereAmI($B["Rid"],NULL,0) . "</td>\n";
$output .= "<td>" .(empty($B["ImgURL"]) ? "no" : "yes") . "</td>\n";
$output .= "<td>" .(empty($B["Posting"]) ? "no" : "yes") . "</td>\n";
$output .= "<td>" . $B["NumArtists"] . "</td>\n";
$output .= "<td nowrap>" . F_CatAdmin("editcat.php","cat=$B[Rid]");
$output .= "</td>\n";
$output .= "</tr>\n";
}
$output .= F_getOrderedCats($B["Rid"]);
}
return $output;
}
имам няколко подобни ф-ии, които правят един и същи списък с категориите, но връщат различен изход. А ако е 1 ф-я връщаща подреден масив с категориите всичко ще се опрости - върху масива щемога да прилагам всякакви форматирани изходи.
|
| |
|
|
|