Recursive MySQL function call eats up too much memory and dies.
        Posted  
        
            by kylex
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by kylex
        
        
        
        Published on 2010-05-28T16:43:46Z
        Indexed on 
            2010/05/28
            17:12 UTC
        
        
        Read the original article
        Hit count: 171
        
I have the following recursive function which works... up until a point. Then the script asks for more memory once the queries exceed about 100, and when I add more memory, the script typically just dies (I end up with a white screen on my browser).
public function returnPArray($parent=0,$depth=0,$orderBy = 'showOrder ASC'){
    $query = mysql_query("SELECT *, UNIX_TIMESTAMP(lastDate) AS whenTime 
        FROM these_pages 
        WHERE parent = '".$parent."' AND deleted = 'N' ORDER BY ".$orderBy."");
    $rows = mysql_num_rows($query);
    while($row = mysql_fetch_assoc($query)){
        // This uses my class and places the content in an array.
        MyClass::$_navArray[] = array(
            'id' => $row['id'], 
            'parent' => $row['parent']
        );
        MyClass::returnPArray($row['id'],($depth+1));   
    }
    $i++;
}
Can anyone help me make this query less resource intensive?
© Stack Overflow or respective owner