Jump to content
php.lv forumi

Recommended Posts

Posted

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

Posted

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);
?>

×
×
  • Create New...