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

    estrarre dati da tabella

    ho una tabella ...
    codice:
    CREATE TABLE IF NOT EXISTS `categories` (
      `categories_id` int(11) NOT NULL auto_increment,
      `name` varchar(64) default NULL,
      `parent_id` int(11) NOT NULL default '0',
      PRIMARY KEY  (`categories_id`),
      KEY `idx_categories_parent_id` (`parent_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;
    
    --
    -- Dump dei dati per la tabella `categories`
    --
    
    INSERT INTO `categories` (`categories_id`, `name`, `parent_id`) VALUES
    (1, 'cat_A', 0),
    (2, 'cat_B', 0),
    (4, 'sub_cat_A_1', 1),
    (5, 'sub_cat_A_2', 1),
    (6, 'sub_cat_A_3', 1),
    (7, 'sub_cat_A_4', 1),
    (8, 'sub_cat_A_5', 1),
    (9, 'sub_cat_A_6', 1),
    (21, 'sub_sub_cat_A_7_1', 17),
    (16, 'sub_sub_cat_A_3_1', 6),
    (17, 'sub_cat_A_7', 1),
    (18, 'sub_cat_B', 2),
    (19, 'sub_sub_cat_A_5_1', 8),
    (20, 'sub_cat_B', 2);
    il campo parent_id collega il "figlio" col "padre"...
    se ci fosse solo il padre ci sarei riuscito aggeggiando con gli array
    siccome ci possono essere anche "nonno" , bis e tris....
    ci vorrebbe qlc di ricorsivo... ma non so come...
    il risultato finale dovrebbe essere:
    cat_A
    cat_B
    cat_A-sub_cat_A_1
    cat_A-sub_cat_A_2
    cat_A-sub_cat_A_3
    cat_A-sub_cat_A_4
    cat_A-sub_cat_A_5
    cat_A-sub_cat_A_6
    cat_A-sub_cat_A_7-sub_sub_cat_A_7_1
    cat_A-sub_cat_A_3-sub_sub_cat_A_3_1
    cat_A-sub_cat_A_7
    cat_B-sub_cat_B
    cat_A-sub_cat_A_5-sub_sub_cat_A_5_1
    cat_B-sub_cat_B

    grazie....

  2. #2
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Prova con una funzione simile che mi è stata suggerita poco tempo fa:

    Codice PHP:
    <?
        
    function get_categorie($id_principale)
        {
            
    $array = array();
                
            
    $sql "SELECT * FROM downcat WHERE id_principale = '$id_principale'";
            
    $res mysql_query($sql);
            while (
    $row mysql_fetch_assoc($res))
            {
                
    $array$row['id_cat'] ] = array(
                    
    'nome'                 => $row['nome'],
                    
    'sottocategorie'     => get_categorie($row['id_cat']
                );
            }
            
            return 
    $array;
        }
        
        
    $array get_categorie(0);
    ?>
    Riadattala ovviamente allo schema della tua tabella.

    Ciao

  3. #3
    grazie ho risolto...anke se in un altro modo....
    una volta estratti i dati correttamente..con qst for..

    Codice PHP:
    for ($i=1,$dim=sizeof($parent_id)+1;$i<$dim;$i++)  {
    $k=0;    
    if (
    array_search($parent_id[$i], $categories_id)===false) {
    echo 
    "cat::".$name[$i]."
    "
    ;$k=1;
    }     
    else 
    $id=array_search($parent_id[$i], $categories_id);      
    if (
    array_search($parent_id[$id], $categories_id)===false and $k==0)                                                             
     { echo 
    "cat::".$name[$i]."--".$name[$id]."
    "
    ;                                                               $k=1;                                                               }   
     else 
    $id_2=array_search($parent_id[$id], $categories_id);    

     if (
    array_search($parent_id[$id_2], $categories_id)===false and $k==0
    {                                        echo 
    "cat::".$name[$i]."---".$name[$id]."--".$name[$id_2]."

    "
    ;                                        $k=1;                                        }    else 
    $id_3=array_search($parent_id[$id_2], $categories_id);      if 
    (
    array_search($parent_id[$id_3], $categories_id)===false and $k==0
    {                                        echo 
    "cat::".$name[$i]."---".$name[$id]."--".$name[$id_2]."--".$name[$id_3]."

    "
    ;                                        $k=1;                                        }    else 
    $id_4=array_search($parent_id[$id_3], 
    $categories_id);                                                          } 

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.