Jump to content
php.lv forumi

par n leveļu navigācijas veidošanu


ezs

Recommended Posts

  • 2 months later...
  • Replies 35
  • Created
  • Last Reply

Top Posters In This Topic

  • 1 year later...

Kā šajama var pielikt LIMIT

 

<?php
  function show_menu($id) {
          $all = mysql_query("SELECT * FROM main Where parent_id=$id ORDER BY id ASC");
          if (!$all) { echo( mysql_error()); } else {
                  if (mysql_num_rows($all) {
                          echo '<ul class="id_nav">';
                          while ($row = mysql_fetch_array($all)) {
                                  echo '<li><a class="nav" href="?id='.$row['id'].'">'.$row['name'].'</a>';
                                  show_menu($row['id']);
                                  echo '</li>';
                          }
                          echo '</ul>';
                  }
          }
  }
  show_menu(0);
?>

 

1. Man ir piem 300 menu kopā.

2. Iespējams daži ir kā sub, sub sub menu .

3. tad kā lai sadalu pa lapām? Un lai herahija tupinātos nākamjā lapā.

Link to comment
Share on other sites

Labda diena pieļauju ka šī tēma ir jau apsprieta, tā arī ir esmu sagatavojis nelielu mājas darbu, bet lūdzu jūsu palīdzību.

Tātad šinī te vietā aprunātā navigācijas veidošana: http://php.lv/f/index.php?sh....

 

bubu piedāvājo ļoti interesantu risinājumu:

<?php
  function show_menu($id) {
   $all = mysql_query("SELECT * FROM main Where parent_id=$id ORDER BY id ASC");
   if (!$all) { echo( mysql_error()); } else {
	   if (mysql_num_rows($all) {
		   echo '<ul class="id_nav">';
		   while ($row = mysql_fetch_array($all)) {
			   echo '<li><a class="nav" href="?id='.$row['id'].'">'.$row['name'].'</a>';
			   show_menu($row['id']);
			   echo '</li>'
		   }
		   echo '</ul>';
	   }
   }
  }
  show_menu(0);
?>

Viss jau ļoti jauki un skaisti, bet cik noprotu, tad noteikti ir jānorāda $id, kurš atsauktos uz Tabulas lauku parent_id, labi tik tāl viss ok, bet piemēram ja nav skaidri zināms, nedz sadaļu dziļums, ned arī to daudzums

pēc bra ralstītā, sapratu ka ir vel viens parametrs (tabulas lauks) sad_id, ļoti jauki un skaisti selectu jau uzraxtīt varētu, bet nezinu kā ar php un rekrusīvajām f-cijām vai iekš php pastāv tāda lieta, un ja pastāv tad kā izmantot tieši šinī gadījumā.

 

Cik noprtu varētu darīt šādi: uzzinam maksimālo parent_id lauka vērtību - apzīmēs cik ir maksimālais dziļums, un tad ar while ciklu laižam caruri viesiem tabulas laukiem un kārtojam mūsu nepieciešamās sadaļas formātā kādā vēlamies

 

Aizmirsu piebilst ka velkot datus ārā no DB veicam nelielu pārbaudi t.i. pārbaudam dziļumu un sadaļu, kura atrodas līmeni zemāk

 

Tad visu izvadam laukā :

šādā formātā:

<ul id="tree">
 <li>1
<ul>
	<li>1.1</li>
	  <li>1.1</li>
</ul>
 </li>
 <li>2
<ul>
	<li>2.1</li>
  <li>2.2</li>
  <li>2.3</li>
</ul>
 </li>
</ul>

Katrs ieraksts unikāls un atrodas savā vietā, ar plānošanu man viss laikam labi, bet ar izpildi, nepārāk vai lūdzu, kāds nevarētu man palīdzēt.

 

Paldies Jums jau iepriekš

try index.php?parent_id=1' union select....

un tas if !$all nemaz nevar izpildities, tad kapec vins tur vispar ir?

Link to comment
Share on other sites


×
×
  • Create New...