Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: query per menu

  1. #1

    query per menu

    Ciao a tutti. Non riesco a capire come fare la query per un menu a tendina.
    Ho una tabella prodotti con i seguenti campi:

    - categoria_id
    - famiglia_id
    - prodotto

    Mi serve fare un menu cosi:

    - Categoria A

    --- famiglia a
    ------ prodotto a
    ------ prodotto b
    ------ prodotto c

    --- famiglia b
    ------ prodotto d
    ------ prodotto e
    ------ prodotto f


    - Categoria B

    --- famiglia c
    ------ prodotto g
    ------ prodotto h
    ------ prodotto i

    --- famiglia d
    ------ prodotto l
    ------ prodotto m
    ------ prodotto n

    mi sapete aiutare per favore?
    grazie mille!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    101
    Fai una query per ogni famiglia/categoria

    tipo:
    codice:
    SELECT * from tua_tabella WHERE categoria_id == A AND famiglia_id == a
    codice:
    SELECT * from tua_tabella WHERE categoria_id == B AND famiglia_id == a
    e poi cicli il risultato per ottenere il menu

    Occhio alla sintassi che non è corretta; mancano gli apici.

    Ovviamente questa soluzione è valida solo nel caso in cui le famiglie e le categorie sono già prefissate a priori.

  3. #3
    ma io non sò i contenuti dei record.... dovrei estrarli e sfogliarli...
    grazie!

  4. #4
    Prima fai una query e un ciclo con una query del tipo

    Codice PHP:
    SELECT FROM tua_prodotti GROUP BY  categoria_id 
    Dentro al ciclo ci metti un'altra query e un altro ciclo con

    Codice PHP:
    SELECT FROM tua_prodotti WHERE categoria_id='$categoria_del_ciclo1' GROUP BY  famiglia_id 
    Dentro al secondo ciclo ci metti un'altra query e un altro ciclo con


    Codice PHP:
    SELECT FROM tua_prodotti WHERE categoria_id='$categoria_del_ciclo1' AND famiglia_id='$famiglia_del_ciclo_2' ORDER BY prodotto 
    Quindi avrai 3 cicli uno dentro l'altro

  5. #5
    cavoli hai ragione! bravissimo...
    ma secondo te così non si appesantisce un po' il tutto con 3 query? anche se in effetti mi sembra l'unico modo
    grazie!

  6. #6
    Io non conosco altro modo

  7. #7
    nemmeno io... e infatti uso quello

    grazie!

  8. #8

  9. #9
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non sono tre query, sono mooolte di più..
    esempio: ho 3 categorie 2 famiglie di prodotti ognuna e n prodotti.. i prodotti non influiscono sul numero di query..
    faccio la prima query che tira fuori 3 risultati.
    quindi al secondo livello avrai, nei cicli annidati, altre 3 query.
    avendo 2 famiglie di prodotti ognuna ognuna delle query restituerà 2 risultati.
    quindi al terzo livello, quello dei prodotti, avrò 3x2 query.
    quindi in tutto avrò 1+3+6 = 10 query..
    se ci fossero in tutto 15 famiglie di prodotti le query sarebbero: 1+3+15 = 19..

    probabilmente con pochi prodotti non è lento.. però resta che non sono 3 query..

    p.s.: NON conosco metodi alternativi, cioè in teoria si con gli array, ma non saprei da dove cominciare..

  10. #10
    Si hai ragione, ma ripeto, non conosco altri metodi per fare quello che gli serve!

    Con gli array, non sono sicuro che arrivi allo stesso risultato...tranne se non si usano N array per N categorie ed N array per N famiglie.

    Ma lì poi è un macello!!

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.