Εύρεση πλήθος υποκατηγοριών

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

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

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 16:40

Παιδιά έχω αυτό εδώ.

Αλλά δεν ξέρω πως να το κάνω να μου εμφανίζει πόσες υποκατηγορίες βρήκε.

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

function FoundSub($parent,$c) {
    global $categories;
   
    foreach( $categories as $key ) {
        
        if( $key['ParentID'] == $parent ) {
            
            FoundSub($key['Code'],$c+1);  
            
        } 
      
    } // end
    return $c;
} // end function
ευχαριστώ

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 18:48

Τι είναι το $c και γιατί επιστρέφεις ένα όρισμα αυτούσιο;

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 18:52

to c einai count

metraw posa sub exei ypotithete
alla den doyleuei

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 19:33

Δεν τα μετράς. Απλά σε κάθε κλήση περνάς σαν παράμετρο το "βάθος" που βρίσκεσαι, το οποίο δεν αξιοποιείται πουθενά αλλού, και στο τέλος το επιστρέφεις αυτούσιο (πράγμα το οποίο είναι εξίσου άσκοπο, μιας και δεν βλέπω πουθενά $var=FoundSub(....))

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 19:38

Πως να το φτιάξω? Με ταλαιπωρεί αυτό πολύ. Στις κατηγορίες που έχουν βάθος ώστε να μπορώ να τις ενεργοποιώ να τις διαγράφω κ.ο.κ.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 19:56

Αν κατάλαβα καλά, θέλεις να μετρήσεις τους "απόγονους" μίας κατηγορίας.

Δοκίμασε αυτό:

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

function FoundSub($parent) {
    global $categories;
    $c=0;
    foreach( $categories as $key ) {
       
        if( $key['ParentID'] == $parent ) {
           
            $c+=1+FoundSub($key['Code']); 
           
        }
     
    } // end
    return $c;
} // end function

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:09

Σωστά κατάλαβες.

Δεν παίζει φίλε μου.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 20:26

Πως την καλείς;
Κάνε κι ένα print_r ενός απλού $categories να δούμε τη δομή του.

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:28

Το κάνω έτσι με by ref αλλά πάλι δεν παίζει

Fatal error: Call-time pass-by-reference has been removed in

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

function FoundSub($CodeCategory,&$count) {
    global $categories;
    
    foreach( $categories as $key ) {
        
        if( $key['Code'] == $CodeCategory ) {
            $count = $count + 1;
            FoundSub($key['ParentID'],&$count);
            
        } 
      
    } // end
    return $count;
} // end function

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:31

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

function GetCategoryArray(){
    global $db;

    $sql = "SELECT * FROM categories";
    $res = $db->query($sql);

      $categories = array();
	while ( $row = $res->fetch_assoc() ) {
    	$categories[] = array(
        'Code'              => $row['Code'],
        'CategoryName'      => $row['CategoryName'],
        'ParentID'          => $row['ParentID']
        );  
    }
    return $categories;  
}

$categories = GetCategoryArray();


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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:34

Κοίτα θα μπορούσα να το κάνω και έτσι αλλά θα ήθελα να γνωρίζω πόσες έχει από κάτω της μια κατηγορία

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

function FoundSub($CodeCategory) {
    global $categories;
    $found = false;
    foreach( $categories as $key ) {
        
        if( $key['Code'] == $CodeCategory ) {
            FoundSub($key['ParentID']);
            $found = true;
        } 
      
    } // end
    return $found;
} // end function

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:41

pou pige o fafos simera ?

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 20:43

dpa έγραψε:pou pige o fafos simera ?
:o

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

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από dpa » 11 Μάιος 2014 20:46

xaxaxa pros theou min thimoneis

exeis dikio!

apla ekeinos panta mou edine mia lysi!

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Εύρεση πλήθος υποκατηγοριών

Δημοσίευση από geomagas » 11 Μάιος 2014 21:04

Κι εγώ σου έδωσα, και δουλεύει.

Απλά εσύ δεν την εφάρμοσες όπως την είπα.

Αν θέλεις fafo άλλη φορά, στέλνε του pm.

Απάντηση

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

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

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