Ciclo for che conta solo una volta

Ho un piccolo problema con un for capriccioso e nello specifico quello sottolineato mi conta su 10 valori solo uno invence sul primo for vedo l'array di tutti ogni volta che  passo sopra all'array in questione che è: $rowmenu[$i].

Mi potete dare una mano per questo piccolissimo problema?  :bye:

<?php
#include_once ('mysql_repository.php');
include_once ('errormessage_repository.php');
#include_once ('../php/connect_db.php');
include_once('../../webconf/config_egaweb_inc.php');
#include_once ('include_session.php');

#Connessione al db
$connect_db = @mysql_connect($connection,$db_username,$db_password)
  or die ($error_connectToHost."<i>".mysql_error()."</i>"."</font></SPAN>");      
  @mysql_select_db($db_name, $connect_db)
   or die ($error_selectDb."<i>".mysql_error()."</i>"."</font></SPAN>");
    
  # Eseguo una select con id ati ricavati dal logon creare per 
  # ordinando in maniera crescente i vari livelli di menù   
  $querymenu_exe = " SELECT egaweb_menu.menu_numtend,egaweb_menu.menu_menulev1,egaweb_menu.menu_menulev2,egaweb_menu.menu_descrizione_menu,
  egaweb_menu.menu_pagina,egaweb_menu.menu_cdc, egaweb_menu.menu_profilo, egaweb_menu.menu_matricola,egaweb_menu.menu_egasett, 
  egaweb_menu.menu_visual,egaweb_menu.menu_princlivmenu,egaweb_menu.menu_primolivmenu,egaweb_menu.menu_secondolivmenu 
  FROM egaweb_menu WHERE egaweb_menu.menu_cdc = '$cdc'  AND egaweb_menu.menu_profilo = '$profilo' AND egaweb_menu.menu_matricola = $matricola 
  AND egaweb_menu.menu_lingua = '$lingua' AND egaweb_menu.menu_egasett = '$egasett'  
  ORDER BY egaweb_menu.menu_numtend, egaweb_menu.menu_menulev1, egaweb_menu.menu_menulev2 ";  

  # Eseguo la query e mi tiro fuori i dati di menu, settore aziendale e operatori interni
  $query_menu = mysql_query($querymenu_exe,$connect_db)
          or die ($error_menu_load."<i>".mysql_error()."</i>"."</font></SPAN>");
         
# Per tutte le righe ottenute
for ($i = 0; $i < mysql_num_rows($query_menu); $i++) {
   $rowmenu[$i] = mysql_fetch_array($query_menu, MYSQL_ASSOC);
}

# Inizializzo la stringhe dei diversi menù
$menu = ""; //Variabile generale di appoggio per i diversi menu

# Passo tutte le righe di risultato della mia select
[u]for ($i = 0; $i < count($query_menu); $i++) {[/u]

   # Salvo i valori in variabili temporanee
   $numtend = $rowmenu[$i]["menu_numtend"];
   $menulev1 = $rowmenu[$i]["menu_menulev1"];   
   $menulev2 = $rowmenu[$i]["menu_menulev2"];   
   $descrmenu = $rowmenu[$i]["menu_descrizione_menu"];   
   $pagina = $rowmenu[$i]["menu_pagina"];
   $princlivmenu = $rowmenu[$i]["menu_princlivmenu"];
   $primolivmenu = $rowmenu[$i]["menu_primolivmenu"];
   $secondolivmenu = $rowmenu[$i]["menu_secondolivmenu"];  
   $visual = $rowmenu[$i]["menu_visual"];  
   
  if (($numtend > 0) && ($menulev2 > 0) && ($visual == "si")) {
   # secondo livello
       $menu .= "<tr><td class=\"menu-opz\" onmouseover=\"this.classname='menu-opz-over'\"
      onmouseout=\"this.classname='menu-opz'\" id=\"bordo_menu\">
      <a href=\"pagina.php?pagina=$pagina&descrizione=$descrmenu\">".htmlspecialchars("&nbsp; &nbsp;&nbsp;")."$descrmenu</a>
      </td></tr></tbody></table></td></tr>";
   } else if ($numtend == 0) {
      # principale
         if (($pagina == "") && ($visual == "si")){
         $menu .= "<tr><td class=\"menu-opz\" onmouseover=\"this.classname='menu-opz-over'\" onmouseout=\"this.classname='menu-opz'\" id=\"bordo_menu\" title=\"$descrmenu\">
         $descrmenu/td></tr>";
         }else{
          $menu .= "<tr><td class=\"menu-opz\" onmouseover=\"this.classname='menu-opz-over'\" onmouseout=\"this.classname='menu-opz'\" id=\"bordo_menu\" title=\"$descrmenu\">
         <a href=\"pagina.php?pagina=$pagina&principale=$princlivmenu&primo=$primolivmenu\">$descrmenu</a></td></tr>";

         }
   } else {
      # primo livello
        if (($visual == "si") && ($pagina == "")) {
         $menu .= "<tr><td id=\"bordo_menu\">$descrmenu</td></tr>";
      } else {          
         $menu .= "<tr><td id=\"bordo_menu\"><table width=\"100%\"><tbody><tr>
         <td class=\"menu-opz\" onmouseover=\"this.classname='menu-opz-over'\" onmouseout=\"this.classname='menu-opz'\">
         <a href=\"pagina.php?pagina=$pagina&primo=$primolivmenu&secondo=$secondolivmenu\">"
         .htmlspecialchars("&nbsp; &nbsp;")."<b>$descrmenu<b/></a></td></tr>";
       }
   } # end else primo livello

}  # end for
$_SESSION['MenuDHTML'] = $menu;
?>
inviato 8 anni fa
EKELON77
X 0 X

Secondo voi come mai non và? Attendo aiuti o suggerimenti.  O0

risposto 8 anni fa
EKELON77
X 0 X

Questo ciclo FOR è sbagliato:

for ($i = 0; $i < count($query_menu); $i++)

infatti la funzione count() va usata su un array per contarne gli elementi ma $query_menu non è un array!

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

e quindi come devo utilizzare il ciclo ?  :bye:

risposto 8 anni fa
EKELON77
X 0 X

prova con count($rowmenu)

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

scusami se te lo dico adesso ma l'avevo capito lo stesso vendendo un vecchio topi cdi zeta80 sulla generazione di stesso con un applet, questo è il topic:

http://www.phpnews.it/forum/index.php?topic=1397.msg9426#msg9426  O0  :bye:

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