Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [PHP] categorie sottocategorie

    Salve a tutti,

    sto cercando di recuperare categoria e sottocategoria da mysql. Premetto che attualmente utilizzo menu select che svolgono egregiamente il loro compito... ma sto cercando di utilizzare jquery per rendere più gradevole l'esperienza utilizzando un menu verticale "accordion"...

    il problema è che mentre le categorie sono recuperate senza problemi e anche l'associazione con la sottocategoria è corretta, invece di ritrovare tutte le sottocategorie recupero soltanto l'ultims voce...

    Cosa sta sbagliando ?
    Grazie in anticipo!

    Codice PHP:
     <div id="box">
                  <h2 class="heading"></h2>
                <ul id="accordion">
                <?php
       
    include ("config.inc.php");
       include (
    "connect.php");
        
    $query ="SELECT idcat, ID, categoria FROM $tabcat ORDER BY idcat";
        
    $result mysql_query($query,$db);
        while (
    $row mysql_fetch_array($result)) {
            
    $categoria $row['categoria'];
            
    $idx $row['idcat'];

        
    ?>
        <?php 
        
        $query2 
    ="SELECT * FROM $tabcat AS c, $tabsubcat AS s WHERE c.idcat=s.idcat AND c.idcat='$idx'";
      
    $result2 mysql_query($query2,$db) or die (mysql_error()); 
        while (
    $row2 mysql_fetch_array($result2)) {
            
    $subcat $row2['subcategoria'];
            
    ?>
            
            <?php 
       $elem_li 
    "[*]
                    
    $categoria
                    <ul>
                        [*][url='#']
    $subcat[/url]
                        
                    [/list]
                "
    ;}
                          echo 
    $elem_li;
        }
                              
                  
    ?>
            
                
                [/list]
      </div>

  2. #2
    Codice PHP:
    ...
                
    ";}
                          echo 
    $elem_li;
    ... 
    Forse dovresti mettere l'echo dentro alla graffa!

    P.S.
    In codice che hai scritto è inguardabile
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Uhm... anche inserendo l'echo all'interno della graffa il risultato non è quello desiderato.
    MI stampa tutte le categorie ma non le sottocategorie insieme ma ciascuna a sé! Invece di :

    codice:
    CAT1->
    SUBCAT1
    SUBCAT2
    ETC...
    
    CAT2->
    SUBCAT1
    SUBCAT2
    ETC...
    così ...

    codice:
    CAT1->
    SUBCAT1
    CAT1->
    SUBCAT2
    CAT1->
    ETC...
    CAT2->
    SUBCAT2
    ...

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Commenta tutto il ciclo while per row2 e sostituiscilo con

    Codice PHP:
    echo "[*]$categoria<ul>";
    while (
    $row2 mysql_fetch_array($result2))
        echo 
    "[*][url='#']{$row2['subcategoria']}[/url]";
    echo 
    "[/list]"
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  5. #5
    Perfetto! Grazie Grino.
    Le stavo provando tutte sulla stessa lunghezza d'onda.

  6. #6

    Re: [PHP] categorie sottocategorie

    Originariamente inviato da seokey
    Cosa sta sbagliando ?
    Tutto.

    Per estrarre questi dati basta UNA query con una JOIN tra le tabelle. Invece tu fai 1 + n query (dove n e' il numero di categorie principali). Questo e' uno dei peggiori errori possibili nell'accesso al database.

    Quello che devi fare e':
    - fare la singola query con la join corretta per avere categorie e sottocategorie
    - mettere i dati in un array di array usando la categoria come indice e le sottocategorie in un array legato a quell'indice
    - stampare i dati contenuti nell'array

  7. #7
    Grazie per il richiamo a "il modo migliore per programmare". Talvolta si cercano soluzioni borderline

    Ho un problema:

    sto provando ad eliminare il primo valore di $categoria che nel mio DB è un "SELEZIONA" con :

    Codice PHP:
    unset($categoria[0]); 
    ma niente da fare...



    qualche idea?

  8. #8
    Originariamente inviato da seokey
    Grazie per il richiamo a "il modo migliore per programmare". Talvolta si cercano soluzioni borderline

    Ho un problema:

    sto provando ad eliminare il primo valore di $categoria che nel mio DB è un "SELEZIONA" con :

    Codice PHP:
    unset($categoria[0]); 
    ma niente da fare...



    qualche idea?
    Ma del codice pulito senza tutti questi accrocchi no eh?!

    Parti dall'indice 1!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9

    [RISOLTO]

    ho aggiunto :

    Codice PHP:
     $query ="SELECT idcat, ID, categoria FROM $tabcat WHERE idcat !='1' ORDER BY idcat"

    Grazie a tutti!

  10. #10

    Re: [RISOLTO]

    Originariamente inviato da seokey
    ho aggiunto :

    Codice PHP:
     $query ="SELECT idcat, ID, categoria FROM $tabcat WHERE idcat !='1' ORDER BY idcat"

    Grazie a tutti!
    Cioè, fammi capire, ti serviva la categoria con id = 1 e facevi la select di tutte le categorie e dal resultset volevi eliminare quella con l'indice 0 per prendere quella con l'indice 1?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.