Visualizzazione dei risultati da 1 a 6 su 6

Discussione: ricorsione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495

    ricorsione

    Ciao!
    ho un problema con una funzione ricorsiva che va in loop..help..

    posto qui il codice!Ho un nodo A con due figli B e C e ogni figlio ha altri nodi..quindi un albero..ogni volta devo aggiornare per ogni ramo tutti i suoi figli..
    quindi aggiorno B, i figli di b e tutti i figli dei figli..
    poi C, i suoi figli e tutti i figli dei figli..


    function update_node($record,$valore){
    $result = mysql_query('select id from node where node_id='{$record}' and deleted=0');
    while ($row = mysql_fetch_assoc($result)) {
    $result = mysql_query('select id from node where node_id='{$row['id']}' and deleted=0');
    update_node($row['id'],$valore);
    }
    }

    grazie!

  2. #2
    Ciao, credo che il problema sia la mancanza del return, e andrebbe dopo il while.
    Ovviamente manca la query di update che credo non sia stata messa solo nel codice postato.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    sei sicurro?non ho ben capito come dovrebbe diventare..

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    495
    nessuno riesce ad aiutarmi?non capisco cosa non va bene..

  5. #5

    Re: ricorsione

    Originariamente inviato da ojalā
    Ciao!
    ho un problema con una funzione ricorsiva che va in loop..help..

    posto qui il codice!Ho un nodo A con due figli B e C e ogni figlio ha altri nodi..quindi un albero..ogni volta devo aggiornare per ogni ramo tutti i suoi figli..
    quindi aggiorno B, i figli di b e tutti i figli dei figli..
    poi C, i suoi figli e tutti i figli dei figli..


    function update_node($record,$valore){
    $result = mysql_query('select id from node where node_id='{$record}' and deleted=0');
    while ($row = mysql_fetch_assoc($result)) {
    $result = mysql_query('select id from node where node_id='{$row['id']}' and deleted=0');
    update_node($row['id'],$valore);
    }
    }

    grazie!

    Nel codice che hai postato non vedo query di update, quindi nel while dovresti inserire la query di update, e dopo aver aggiornato dovresti inserire un return, altrimenti la funzione viene chiamata in modo ricorsivo e l'esecuzione non termina mai.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    cosė potrebbe funzionare
    Codice PHP:
    function update_nodes($recordID=false,$value){
        
    $childs mysql_query("select id from node where node_id='{$recordID}' and deleted=0");
        while (
    $child mysql_fetch_assoc($childs)) {
            
    update_node($child['id'],$valore);
            }
        } 
    ma non capisco ancora dove effettui l'azione di update in base al valore passato...

    Non sempre essere l'ultimo č un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.