rausis Posted November 2, 2008 Report Posted November 2, 2008 Ir funkcija, kura rāda izvēlnes sadaļas un apakšsadaļas, darbojas kā nākas, tikai veic pārāk daudz mysql vaicājumus, varbūt ir kāda iespēja viņu optimizēt, taisīt savādāk, tomēr 5 sql vaicājumi priekš 2 sadaļām un 2 apakšadaļām ir par šerpu, ir plānotas stipri vairāk sadaļas un apakšadaļas, tapēc griežos pie jums, pēc palīdzības, padoma. Paldies... :) function display_sub_menu($parent, $lim) { global $selected; $sql = sprintf("SELECT id, title, body FROM article_lv WHERE parent_id = %d",$parent); $res = sql_query($sql) or die(mysql_error()); echo ($lim > 0 ? '<i>' : ''); while ($row = mysql_fetch_array($res)) { echo "<li><a href=\"index.php?p=".$row['id']."\">\n"; echo "<span".($selected == "index.php?p=".$row['id']."" ? " style=\"font-weight: bold;\"" : "").">".$row['title']."</span></a>\n"; echo "</a></li>\n"; display_sub_menu($row['id'], $lim+1); } echo ($lim > 0 ? '</i>' : ''); }// function display_sub_menu
andrisp Posted November 2, 2008 Report Posted November 2, 2008 Ar vienu kveriju iegūsti pilnīgi visu ierakstus. Pēc tam tādā pašā līdzīgā veidā ar rekursiju izdrukā.
marcis Posted November 3, 2008 Report Posted November 3, 2008 Jā, es arī agrāk šādi veidoju lapas kartes (teorētiski tas pats vien ir). Šodien jau es to daru šādi: <? function sitemap($pid,$t){ global $lx; if(empty($t[$pid]) || !is_array($t[$pid])){ return ""; } $s='<ul>'; foreach($t[$pid] as $key=>$value){ $s.='<li><a href="/'.$lx.'/'.url($key).'">'.$value.'</a>'.sitemap($key,$t).'</li>'; } $s.='</ul>'; return $s; } $topics=array(); $tsql="SELECT t.id, t.parent_id, ta.name FROM `topics` t, `topics_alias` ta WHERE t.active=1 AND ta.topic_id=t.id AND ta.lang_id=".intval($l)." ORDER BY t.position ASC"; $tres=mysql_query($tsql); while($trow=mysql_fetch_object($tres)){ $topics[$trow->parent_id][$trow->id]=$trow->name; } echo sitemap(0,$topics); ?>
rausis Posted November 3, 2008 Author Report Posted November 3, 2008 (edited) Liels paldies, tieši tas, kas bija vajadzīgs, viss darbojas :) Edited November 3, 2008 by rausis
Recommended Posts