Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 12 su 12

Hybrid View

  1. #1
    scusa prima non funzionava il forum e non mi ha postato la risposta:

    purtroppo ho letto male, MySQL ( che lo dico sempre che ha grosse lacune ) non supporta quel tipo di query, quindi quel costrutto non va bene. Ritorniamo al discorso del PHP: che fai, esegui una funzione che richiami ricurisivamente ? posta un po di codice va...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    27
    Cacchio che sfiga.....L'intero progetto che sto realizzando si basa su questa query, forse faccio prima a passare da mysql a qualcos'altro, che ne sò.... postgreSQL??? non conosco bene altri dbms col quale php lavora bene, si accettano consigli

    Comunque nel frattempo sto provando con una funzione php, però diventa troppo complicato gestire i risultati, mi spiego:
    la query ricorsiva mi avrebbe restituito una tablla ordinata con tutte le tuple richieste sul quale poi io avrei potuto eseguire altre operazioni( cosa che tra l'altro devo fare! )
    mentre la funzione che ho scritto mi restituisce una array multidimensionale, il problema è che le dimensioni variano da chiamata a chiamata perchè in base a quanti nodi deve scendere e a quanti utenti ci sono ad un determinato livello ci saranno array di array di array di array ecc..ecc.....
    questo rende complicato, almeno per me, utilizzare i risultati successivamente.

    Ti posto la funzione ed un risultato:
    codice:
    function sottorete($userId)
    {
        $array = array();
        $connection = getConnection();
    
        $sql = "SELECT id_user,padre FROM utenti WHERE padre = '%s'";
        $sql = sprintf($sql, $userId);
        $res = mysqli_query($connection, $sql);
        while ( $row = mysqli_fetch_assoc($res) )
        {
            $array[] = $row;
            $array[] = sottorete($row['id_user']);
        }
        
        return $array;
    }
    ed il risultato di una chiamata di esempio sono tutti sti array innestati:

    Array ( [0] => Array ( [id_user] => 7 [padre] => 1 ) [1] => Array ( [0] => Array ( [id_user] => 11 [padre] => 7 ) [1] => Array ( [0] => Array ( [id_user] => 14 [padre] => 11 ) [1] => Array ( ) [2] => Array ( [id_user] => 15 [padre] => 11 ) [3] => Array ( ) ) [2] => Array ( [id_user] => 12 [padre] => 7 ) [3] => Array ( ) [4] => Array ( [id_user] => 13 [padre] => 7 ) [5] => Array ( ) [6] => Array ( [id_user] => 16 [padre] => 7 ) [7] => Array ( ) [8] => Array ( [id_user] => 17 [padre] => 7 ) [9] => Array ( ) [10] => Array ( [id_user] => 18 [padre] => 7 ) [11] => Array ( ) ) [2] => Array ( [id_user] => 8 [padre] => 1 ) [3] => Array ( ) [4] => Array ( [id_user] => 9 [padre] => 1 ) [5] => Array ( ) [6] => Array ( [id_user] => 10 [padre] => 1 ) [7] => Array ( ) )

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 © 2026 vBulletin Solutions, Inc. All rights reserved.