Cicli Impazziti

Sto tentando di realizzare una stringa formattata in un determinato modo per poi poterla utilizzare in un applet java.

Sto incontrando delle difficolta con i cicli while e for infatti visto che i livelli di menu, descr,link e profilo sono scritti su una tabella  e devono essere dispoti in un determinato modo.

Vi prego aiutemi sono in fase di deadlock.  :crazy: :lamo: :wallbash:

-- 
-- Struttura della tabella `menu`
-- 

CREATE TABLE `menu` (
  `IdMenu` int(10) unsigned NOT NULL auto_increment,
  `Descr` varchar(50) NOT NULL,
  `Link` varchar(50) NOT NULL,
  `MenuLev0` int(1) NOT NULL,
  `MenuLev1` int(1) NOT NULL,
  `MenuLev2` int(1) NOT NULL,
  `Profilo` varchar(1) NOT NULL,
  PRIMARY KEY  (`IdMenu`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
<?

$Profilo = $_SESSION["Profilo"];

//include "connessione.php";

$selmenu =  "select Menu.Descr,Menu.Link,Menu.MenuLev0,Menu.MenuLev1,Menu.MenuLev2 from Menu where Profilo = '$Profilo'";

$querymenu = mysql_query ($selmenu,$connes)

                or die ("Non riesco ad eseguire la richiesta, torna indietro");

while ($valmenu = mysql_fetch_array($querymenu)){

   $Descr     = $valmenu ["Descr"];

   $Link     = $valmenu ["Link"];

   $PrimoLivello = $valmenu ["MenuLev1"];

   $SecondoLivello = $valmenu ["MenuLev2"];

for ($i = 0, $n = count($valmenu) ; $i <= $n ; $i++)

{

            if (($PrimoLivello > 0) && ($SecondoLivello > 0)) {

                                        // secondo livello

                    $MenuString_Lev2 = "{||".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                                } else if ($PrimoLivello == 0) {

                                        // principale

                                        if ($Profilo == "U") {

                                                $MenuString_Princ ="{".$Descr."}";

                    } else {

                       $MenuString_Princ = "{".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                                        }

              } else {

                    // primo livello

                                        if ($Profilo == "U") {

                                                $MenuString_Lev1 = "{|".$Descr."}";

                                        } else {

                       $MenuString_Lev1 = "{|".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                              }

                          }

     }

}

//visualizza una voce di menu fissa con Descrizione Uscita

$Exit = "{Uscita,logout.php ,_top}";

$MenuString = $MenuString_Princ.$MenuString_Lev1.$MenuString_Lev2.$Exit;

$PARAMETRI_MENU = $MenuString;

?>
inviato 10 anni fa
EKELON77
X 0 X

non hai specificato perņ quale sia la sintassi di questa stringa e con quale logica costruirla, partendo dai dati estratti dalla tabella del DB.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Syntax: {Enterprise SpA} Menu Principale

{|Fax Ricevuti} 1 Livello

{||Ricerca Fax,javascript:jumpTo('Ricerca Fax','r_faxricevuti','main'),main}{Uscita,logout.php ,_top} 2 Livello, la logica del db č la voce INSERT INTO `menu` (`IdMenu`, `Descr`, `Link`, `MenuLev0`, `MenuLev1`, `MenuLev2`, `Profilo`) VALUES (1, 'Entra', '', 0, 0, 0, 'U'), Menu principale (2, 'Menu1', '', 0, 1, 0, 'U'), Primo Livello (3, 'Menu2', '', 0, 1, 0, 'U'), Primo Livello (8, 'Menu3', '', 0, 1, 0, 'U'), Primo Livello (9, 'Link3', '.php', 0, 1, 1, 'U'); Secondo Livello

Spero di essere stato esauriente.  O0 :bye: :angel:

risposto 10 anni fa
EKELON77
X 0 X

Ho aggiornato il codice:

<?

//CARICO IN SESSIONE IL PROFILO CHE PUO' ESSERE 'U' PER UTENTE o 'A' PER ADMINSTRATOR

$Profilo = $_SESSION["Profilo"];

//include "connessione.php";

//ESEGUO UNA SELECT E PASSANDOGLI LA VARIAILE $PROFILO

$selmenu =  "select Menu.Descr,Menu.Link,Menu.MenuLev0,Menu.MenuLev1,Menu.MenuLev2,Menu.Flag from Menu where Profilo = '$Profilo'";

$querymenu = mysql_query ($selmenu,$connes)

                or die ("Non riesco ad eseguire la richiesta, torna indietro");

//CREO UN ARRAY CON I VALORI DELLA PRIMA RIGA DEL RECORD

$valmenu = mysql_fetch_array($querymenu);

   $Descr     = $valmenu ["Descr"];

   $Link     = $valmenu ["Link"];

   $PrimoLivello = $valmenu ["MenuLev1"];

   $SecondoLivello = $valmenu ["MenuLev2"];

   $Flag = $valmenu ["Flag"];

//ESEGUO UN CICLO FOR DEL $PrimoLivello CHE HA 0 COME VALORE E DEVE CICLARE PER 9 VOLTE

for ($i = count($PrimoLivello); $i <= 9;$i++)

{

            if (($PrimoLivello > 0) && ($SecondoLivello > 0) && ($Flag == "No")) {

                                        // secondo livello

                    $MenuString_Lev2 = "{||".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                                } else if ($PrimoLivello == 0) {

                                        // principale

                                        if ($Flag == "Si") {

                                                $MenuString_Princ = "{".$Descr."}";

                    } else {

                       $MenuString_Princ = "{".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                                        }

              } else {

                    // primo livello

                                        if ($Flag == "Si") {

                                                $MenuString_Lev1 = "{|".$Descr."}";

                                        } else {

                       $MenuString_Lev1 = "{|".$Descr.",javascript:jumpTo('".$Descr."','".$Link."','main'),main}";

                              }

                           }

     }

     $MenuString = $MenuString_Princ.$MenuString_Lev1.$MenuString_Lev2;

//visualizza una voce di menu fissa con Descrizione Uscita

$Exit = "{Uscita,logout.php ,_top}";

$PARAMETRI_MENU = $MenuString.$Exit;

?>

Vi prego datemi una mano non nč esco +, ma si puņ fare in php??

risposto 10 anni fa
EKELON77
X 0 X

Ma quanti post hai fatto?????

Uno su menł navigazione e uno qui??? Cmq da come ho scritto in risposta all'altro messaggio penso di averti dato la soluzione corretta. Se mi dai conferma domani posto il codice.

Buona giornata

Zeta

risposto 10 anni fa
zeta80
X 0 X

Hai ragione ho postato troppe volte per lo stesso problema.  O0

risposto 10 anni fa
EKELON77
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda