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

    foreach: probabilmente bug nel codice

    Ho il seguente codice:
    Codice PHP:
      $Sql->select("list""*""prefix_cat_for");
      
      while ( 
    $list $Sql->assoc("list") )
      {
          
    $this->list_out$list['id'] ] = Array(
              
    'id'  =>    $list['id'],
              
    'parent'  =>    $list['parent'],
              
    'name'  =>    $list['name'],
              
    'f_description'    =>    $list['f_description'],
          );
          
          if ( 
    $list['parent'] > )
          {
        
    $this->sons$list['parent'] ][ $list['id'] ] = $list;
          }
          else
          {
        
    $this->fathers$list['id'] ] = $list;
          }
      }
      
      
      foreach ( 
    $this->list_out as $cat_id => $cat_data )
      {
                  foreach ( 
    $this->fathers as $for_id => $for_data )
          {
        if ( 
    $for_data['parent'] == $cat_id )
        {
            
    $this->output_list .= $this->prova($for_data);
        }
          }
                      
          if ( 
    $cat_data['parent'] == -&& $for_data['parent'] == $cat_data['id'] )
          {
        echo 
    "> ".$cat_data['name']."
    "
    .$this->output_list."
    "
    ;
          }
      } 
    In pratica estraggo i dati di una tabella che contiene i dati delle varie categorie e sotto-categorie (forum).

    Ora mettiamo che i dati sono:
    id | parent | name
    0 | -1 | Categoria 1
    1 | 0 | Forum 1
    2 | -1 | Categoria 2
    3 | 0 | Forum 2
    4 | 2 | Forum 3
    5 | 0 | Forum 4

    Quel codice mi stampa:
    > Categoria 1
    >> Forum 1
    >> Forum 2
    >> Forum 4

    Il quale è esatto, ma sotto dovrebbe restituirmi anche:
    > Categoria 2
    >> Forum 3

    E invece non lo fa.



    Come suggeritomi da daniele_dll, ho stampato l'output di $this->list_out tramite print_r; questo è il risultato:
    codice:
    Array
    (
        [0] => Array
            (
                [id] => 0
                [parent] => -1
                [name] => Categoria 1
                [f_description] => 
            )
    
        [1] => Array
            (
                [id] => 1
                [parent] => 0
                [name] => Forum 1
                [f_description] => Descrizione forum 1
            )
    
        [2] => Array
            (
                [id] => 2
                [parent] => -1
                [name] => Categoria 2
                [f_description] => 
            )
    
        [3] => Array
            (
                [id] => 3
                [parent] => 0
                [name] => Forum 2
                [f_description] => Descrizione forum 2
            )
    
        [4] => Array
            (
                [id] => 4
                [parent] => 2
                [name] => Forum 3
                [f_description] => Descrizione forum 3
            )
    
        [5] => Array
            (
                [id] => 5
                [parent] => 0
                [name] => Forum 4
                [f_description] => Descrizione Forum 4
            )
    
    )

    La classe MySql è correttissima (ho provato ad eseguire mysql_query e mysql_assoc senza $Sql ecc. e funziona allo stesso modo).


    Grazie




  2. #2

  3. #3
    non e' che il problema e' sugli if ??? ... prova a toglierli o a echare senza l' if, vedi se il filtro che usi e' corretto ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Ho provato a toglierli ma il risultato viene ancora più incasinato.

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.