Κατηγορίες με πολλαπλές υποκατηγορίες

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 10:32

Παιδιά δίνω αυτόν τον κώδικα για την δημιουργία κατηγοριών με πολλαπλές υποκατηγορίες.

Μπορεί όμως κάποιος να το διορθώσει ώστε να εμφανίζει τις υποκατηγορίες ως bullet list
με <ul><li></li></ul>

Θέλω βοήθεια FAFO παιδιά αν μπορείτε να το διορθώσετε κάντε το και post γιατί θα βοηθήσει πολλούς

Ευχαριστώ πολύ

Κώδικας: Επιλογή όλων

require_once&#40;'conn.php'&#41;;

$db->query&#40;"SET NAMES 'greek'"&#41;;
$res= $db->query&#40;'SELECT * FROM category ORDER BY Category_ID'&#41;;
$count = 0;
$menu_array = array&#40;&#41;;

while &#40; $row = $res->fetch_assoc&#40;&#41; &#41;
&#123;
	$menu_array&#91;$count&#93; = array&#40; $row&#91;'Category_ID'&#93;, $row&#91;'Category_Name'&#93;, $row&#91;'Parent_ID'&#93;, $row&#91;'Display'&#93; &#41;;
	$count++;
	
&#125;

	  
function display_category&#40;$parent,$level&#41; &#123;
	global $menu_array;
	$k = $level + 1;

	for&#40;$i=0;$i<count&#40;$menu_array&#41;; $i++&#41; &#123;
	
		if&#40; $menu_array&#91;$i&#93;&#91;2&#93; == $parent &#41; &#123;
			echo "\t<li>\n".$menu_array&#91;$i&#93;&#91;1&#93;;
			echo "\t<ul>\n";
			display_category&#40;$menu_array&#91;$i&#93;&#91;0&#93;,$k&#41;;
			echo "\t</li>\n";
		&#125; // end if
		
	&#125; // end for

&#125; // end function

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από fafos » 26 Φεβ 2010 16:56

sou trexei auto? pou to vrhkes?

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 16:58

Το έφτιαξα εγώ τρέχει αλλά δεν μπορώ να τα εμφανίσω σωστά τα <u>l και τα <li>




Έχω φτιάξει και αυτό φίλε το οποίο παίζει κανονικά:


Κώδικας: Επιλογή όλων

function display_category&#40;$parent,$level&#41; &#123;
	global $menu_array;
	$k = $level + 1;

	for&#40;$i=0;$i<count&#40;$menu_array&#41;; $i++&#41; &#123;
	
		if&#40; $menu_array&#91;$i&#93;&#91;2&#93; == $parent &#41; &#123;
			echo "<option value=".$menu_array&#91;$i&#93;&#91;0&#93;.">";
			epanalipsi&#40;$k&#41;;
			echo $menu_array&#91;$i&#93;&#91;1&#93;."</span></option>";
		
			display_category&#40;$menu_array&#91;$i&#93;&#91;0&#93;,$k&#41;;
		&#125; // end if
		
	&#125; // end for

&#125; // end function

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από fafos » 26 Φεβ 2010 17:19

emena den mou trexei alla telos panton..

gia na emfaniseis sosta tis listes ths perpei na tou dineis ta ul MONO otan yparxoun ypokathgories...

opote mesa sthn function:

Κώδικας: Επιλογή όλων

function display_category&#40;$parent,$level&#41; &#123; 

$ypo = false;
meta mesa sto for:

Κώδικας: Επιλογή όλων

 for&#40;$i=0;$i<count&#40;$menu_array&#41;; $i++&#41; &#123; 

      if&#40; $menu_array&#91;$i&#93;&#91;2&#93; == $parent &#41; &#123; 

//elenxeis an yparxoun ypokathgories
                        if &#40;$ypo === false&#41;
                        &#123;
  //gyrname se true otan vrei ypojathgories kai tiponoume to <ul>                    
                               $ypo = true;
                                echo '<ul>';

                        &#125;

//typoneis ta <li> me ta apotelesmata edo

kai me to kleisimo tou for (prin kleiseis thn function) typoneis to kleisimo ths lista (</ul>) efoson yparxoun ypokathgories (einai to $ypo = true):

Κώδικας: Επιλογή όλων

   &#125; // end for

        if &#40;$ypo === true&#41; echo '</ul>';

&#125; // end function 

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 17:29

Φίλε FAFO το έχω βρει αυτό που είπες σε κάποιο site στο internet είναι έτσι και παίζει κανονικά:

Το θέμα είναι πώς θα πω στο πρώτο ul να βάλει class="menu" ώστε να τα κάνω drop down list

Δεν γίνεται. Έχω κάνει πολλούς πειραματισμούς στον κώδικα και στις κεντρικές κατηγορίες να βάζει το class="parent"

Σε ευχαριστώ πολύ που με βοηθάς.


Κώδικας: Επιλογή όλων

require_once&#40;'conn.php'&#41;;

$db->query&#40;"SET NAMES 'greek'"&#41;;
$res = $db->query&#40;'SELECT * FROM category ORDER BY Category_ID'&#41;;
$menu_array = array&#40;&#41;;

while &#40; $row = $res->fetch_assoc&#40;&#41; &#41;

&#123;

        $menu_array&#91;$row&#91;'Category_ID'&#93;&#93; = array&#40;'Category_Name' => $row&#91;'Category_Name'&#93;,'Parent_ID' => $row&#91;'Parent_ID'&#93;&#41;;

&#125;


function generate_menu&#40;$parent&#41; &#123;

        $has_childs = false;
        //this prevents printing 'ul' if we don't have subcategories for this category

        global $menu_array;
        //use global array variable instead of a local variable to lower stack memory requierment

        foreach&#40;$menu_array as $key => $value&#41;  &#123;

                if &#40;$value&#91;'Parent_ID'&#93; == $parent&#41; &#123; 

                        //if this is the first child print '<ul>'                       
                        if &#40;$has_childs === false&#41; &#123;
                                //don't print '<ul>' multiple times                             
                                $has_childs = true;
                                echo "\t<ul>\n";
                        &#125;

                        echo "\t<li>".'<a href="/category/' . $value&#91;'Category_Name'&#93; . '/">' . $value&#91;'Category_Name'&#93; . '</a>';
                        generate_menu&#40;$key&#41;;

                        //call function again to generate nested list for subcategories belonging to this category
                        echo "\t</li>\n";
                &#125;
        &#125;

        if &#40;$has_childs === true&#41; echo "\t</ul>\n";
&#125;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από fafos » 26 Φεβ 2010 17:48

apo allou ksekinas to thema allou to pas.. ksekatharise ti thes na kaneis.. efoson eixes vrei pos na ta kaneis lista gati rotas? ti einai to class="menu"?

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 17:50

Τα στοιχεία που εμφανίζονται θέλω να τα εμφανίσω με jquery drop down menu

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 18:13

Φίλε FAFO τι έγινε είσαι εκεί βρήκες λύση ??

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από fafos » 26 Φεβ 2010 18:22

miso giati feiaxno ta booklets gia tis katsikes mou kai den mou vganei ena chart... :lol:

poio jquery plugin tha xrhsimopoihseis?

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 18:33

Φίλε δες στο συνημμένο που σου στέλνω

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 18:35

Φίλε δες στο συνημμένο που σου στέλνω

ή ένα από αυτά που έχει το site
http://www.apycom.com/


Κώδικας: Επιλογή όλων

<ul class="sf-menu"> 
			<li class="current"> 
				<a href="#a">menu item</a> 
				<ul> 
					<li> 
						<a href="#aa">menu item that is quite long</a> 
					</li> 
					<li class="current"> 
						<a href="#ab">menu item</a> 
						<ul> 
							<li class="current"><a href="#">menu item</a></li> 
							<li><a href="#aba">menu item</a></li> 
							<li><a href="#abb">menu item</a></li> 
							<li><a href="#abc">menu item</a></li> 
							<li><a href="#abd">menu item</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
				</ul> 
			</li> 
			<li> 
				<a href="#">menu item</a> 
			</li> 
			<li> 
				<a href="#">menu item</a> 
				<ul> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">short</a></li> 
							<li><a href="#">short</a></li> 
							<li><a href="#">short</a></li> 
							<li><a href="#">short</a></li> 
							<li><a href="#">short</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
					<li> 
						<a href="#">menu item</a> 
						<ul> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
							<li><a href="#">menu item</a></li> 
						</ul> 
					</li> 
				</ul> 
			</li> 
			<li> 
				<a href="#">menu item</a> 
			</li>	
		</ul> 
Συνημμένα
superfish-1.4.8.zip
(31.48 KiB) Μεταφορτώθηκε 95 φορές

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 19:49

Φίλε το έκανα έτσι με ένα counter για να βρίσκει το επίπεδο αλλά δεν παίζει βάζει το class μόνο στο πρώτο <ul>

Κώδικας: Επιλογή όλων

        foreach&#40;$menu_array as $key => $value&#41;  &#123;

                if &#40;$value&#91;'Parent_ID'&#93; == $parent&#41; &#123; 
				
						if&#40; $k == '1'&#41; &#123;
							    if &#40;$has_childs === false&#41; &#123;
                                //don't print '<ul>' multiple times                             
                                $has_childs = true;
                                echo "\t<ul class=\"sf-menu\">\n";
								&#125;
						&#125; else &#123;
							    if &#40;$has_childs === false&#41; &#123;
                                //don't print '<ul>' multiple times                             
                                $has_childs = true;
                                echo "\t<ul>\n";
								&#125;						
						&#125;
				

                        //if this is the first child print '<ul>'                       

                        echo "\t<li>".'<a href="/category/' . $value&#91;'Category_Name'&#93; . '/">' . $value&#91;'Category_Name'&#93; . '</a>';
                        generate_menu&#40;$key,$k&#41;;

                        //call function again to generate nested list for subcategories belonging to this category
                        echo "\t</li>\n";
                &#125;
        &#125;
		
        if &#40;$has_childs === true&#41; echo "\t</ul>\n";
&#125;

dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 19:50

ksexasa oti epano exw auta

function generate_menu($parent,$level) {
$k = $level + 1;
$has_childs = false;
//this prevents printing 'ul' if we don't have subcategories for this category

global $menu_array;
//use global array variable instead of a local variable to lower stack memory requierment

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από fafos » 26 Φεβ 2010 20:09

eimai busy gia na katso na psakso ti paizei me authn thn function... ena sta grhgora alla me 2 gueries einai auto:

Κώδικας: Επιλογή όλων

<?php
//connect to database
$dbhost = 'localhost';//host
$dbuser = 'root';//username
$dbpass = '';//password
$dbname = 'test';//onoma vashs





$link = mysql_connect&#40;$dbhost,$dbuser,$dbpass&#41; or die&#40;'wrong'&#41;;
$db = mysql_select_db&#40;$dbname,$link&#41;;


//vres ta parents - kyria kathgoria
$query = "SELECT * FROM categories WHERE parent='0'";
$query = mysql_query&#40;$query,$link&#41;;


echo '<ul  class="sf-menu">';


$n==0;
        while&#40;$row = mysql_fetch_array&#40;$query&#41;&#41;
&#123;


if&#40;$n==0&#41; &#123; $style = ' class="current" ';&#125; else &#123;$style = '';&#125;
 
 
 
echo '<li'.$style.'><a href="'.$row&#91;name&#93;.'">'.$row&#91;name&#93;.'</a>';

//vres ta parents - ypokathgories ana kyria kathgoria
       $sql = "SELECT * FROM categories WHERE  parent ='$row&#91;id&#93;'";
       	$result = mysql_query&#40;$sql,$link&#41;;
	$total_records=@mysql_num_rows&#40;$result&#41;;

	
	if&#40;$total_records > 0&#41; &#123;
echo '<ul>';
        while&#40;$row1 = mysql_fetch_array&#40;$result&#41;&#41;
&#123;

echo '<li><a href="'.$row1&#91;name&#93;.'">'.$row1&#91;name&#93;.'</a></li>';

&#125;
echo '</ul>';
&#125;
echo '</li>';

	
$n++;
&#125;




echo '</ul>';


?>



dpa
Δημοσιεύσεις: 631
Εγγραφή: 29 Μαρ 2008 13:55

Κατηγορίες με πολλαπλές υποκατηγορίες

Δημοσίευση από dpa » 26 Φεβ 2010 20:43

Φίλε σε ευχαριστώ πάρα μα πάρα πολύ

Θα το προσπαθήσω

Σε ευχαριστώ

και συγνώμη

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες