Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Generazione ricorsiva di un Menu albero con XML

    Ciao a tutti quello che mi servirebbe in questo momento è riuscire a trasformare in un documento xml delle righe ottenute da una query su MYSQL.

    la tabella ha la seguente forma:

    nome | livello | posizione | link

    nome: è il nome della voce del menu
    livello: "root" se voce primaria o richiamo al "Nome" se appartenente a un sottomenu
    posizione: un int che determina la posizione delle voci nel menu
    link: la pagina che punta (nel mio caso saranno filmati flash da caricare)

    facendo una query di partenza

    "SELECT * FROM menu WHERE livello='root' ORDER BY posizione"

    ottengo un array di tutti i nodi principali, il primo livello.

    qui occorre fare la distinzione tra item singolo o submenu.

    per il sottomenu infatti occorre la ricorsione in modo da gestire l'invito caso dei sottomenu.

    però mi sto aggrovigliando la mente e in rete non ho trovato nulla di utile. qualcuno mi può aiutare?

    l'xml deve essere generato in questo formato

    codice:
    <?xml version="1.0"?> 
    <menu name="links"> 
    	<menu name="Homepage"> 
    		<item name="flash" action="gotoURL" variables="http://www.macromedia.com/software/flash"/> 
    		<item name="dreamweaver" action="gotoURL" variables="http://www.macromedia.com/software/dreamweaver"/> 
    		<item name="fireworks" action="gotoURL" variables="http://www.macromedia.com/software/fireworks"/> 
    	</menu> 
                 <item name="google" action="gotoURL" variables="http://www.google.com"/> 
    </menu>
    spero qualcuno mi possa indirizzare!
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  2. #2
    provo con un up :rollo:
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  3. #3
    posto quello che ho realizzato ma non capisco perchè non funziona

    codice:
    function menu($query1)
    {
    	print "
    
    apertura del menu</p>";
    	
    	$result1 = mysql_query($query1,$db);
    	while($row1 = mysql_fetch_array($result1))
    	{
    		$result1_T = mysql_query($query1,$db);
    		$totRighe = mysql_num_rows($result1_t);
    		$checkMenu=FALSE;
    		if ($totRighe>0) $checkMenu=TRUE;
    		
    		if(checkMenu==FALSE) print"
    
    ITEM
    
    ";
    		else
    		{
    			$query1Id=$row1['id'];
    			$query2="SELECT * FROM menu WHERE id='$query1Id'";
    			
    			menu($query2);
    		}
    	}
    	
    	print "
    
    chiusura del menu</p>";
    }
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  4. #4

    HO TROVATO LA RISPOSTA

    bene bene bene! la cosa sembra funzionare!

    a tutti coloro che volessero implementare, migliorare o deridere ( ) questa simpaticissima funzione Ricorsiva per la stampa del menu da database in formato XML....riporto il mio operato, spero possa essere di aiuto a qualcuno! sayonara!

    PS: il tutto è stato fatto per gestire da database, in modo ricorsivo, un menu in flash dinamico.

    PPS: SE LO UTILIZZATE mandatemi una mail a michelewt@hotmail.it

    codice:
    <?
    //definisco la funzione RICORSIVE Menu
    function menu($query1,$nome1,$db)
    {
    	print "<menu name=\"$nome1\"> ";
    	
    	$result1 = mysql_query($query1,$db);
    	while($row1 = mysql_fetch_array($result1))
    	{
    		$queryS = "SELECT * FROM menu WHERE livello='$row1[nome]' ORDER BY posizione";
    		$resultS = mysql_query($queryS,$db);
    		$totRighe = mysql_num_rows($resultS);
    		
    		if($totRighe==0) 
    		{
    			print"<item name=\"$row1[nome]\" action=\"gotoURL\" variables=\"$row1[link]\"/> ";
    		}
    		else
    		{
    			$nome2=$row1['nome'];
    			$query2="SELECT * FROM menu WHERE livello='$nome2'";
    			
    			menu($query2,$nome2,$db);
    		}
    	}
    	
    	print "</menu>";
    }
    
    //include config
    include"../config.inc.php";
    
    //connessione a MySQL
    $db = mysql_connect($db_host,$db_user,$db_password);
    
    //verifica se la connessione è andata a buon fine
    if ($db==FALSE) die("Errore nella connessione a MySQL");
    
    //connessione al database specifico
    mysql_select_db($db_name,$db)
    or die("Errore nella selezione del database");
    
    print"<?xml version=\"1.0\"?>";
     
    //definizione della query
    $queryM="SELECT * FROM menu WHERE livello='root' ORDER BY posizione";
    
    $nomeM="menu";
    menu($queryM,$nomeM,$db);
    
    mysql_close($db);
    ?>
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

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