Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628

    Query impossibile o quasi ?

    Salve a tutti,

    un ennesimo problema e dubbio mi attanaglia

    Facciamo un esempio su un catalogo prodotti: se voglio, in fase di inserimento, scegliere in quali categorie inserire il prodotto, mi sono sempre comportato in questo modo

    Tabella Categorie (ID,Nome,Descrizione)

    ...e la tabella prodotti fatta in questo modo

    ID | ID_Categoria | Nome | ecc...
    1 |1| Palla
    2 |2| Casa
    3 |1|2| Sci

    In questo modo, riesco ad inserire un prodotto in più categorie (creando nel campo ID_Categoria, una specie di array delle categorie) ...senza duplicare lo stesso record (con tutti i campi) cambiando solo l'ID_Categoria.

    Sia in inserimento, che visualizzazione non ho mai avuto problemi. La nuova esigenza nasce dal fatto che ho inserito un campo numero "ordine" per spostare il prodotto sotto o sopra gli altri, e quindi ordinando la query in base al campo ordine, che contiente 1,2,3,4 ecc...

    Non avevo pensato però che quando vado a fare le operazioni su questo campo, mi cambia l'ordine del prodotto, senza calcolare che lo stesso è inserito in 2 categorie diverse, e che quindi dovrei utilizzare un numero per l'ordinamento, diverso per ogni categoria.

    Ho quindi pensato a modificare il campo ordine, da numerico, a semplice testo, cambiando il contenuto, da 1 a |1| ...e, nel caso fosse presente in 2 categorie in |1|3| ...in questo modo avrei 2 specie di array, ...in corrispondenza avrei, per il primo numero nell'array categorie, un numero di ordine ..e così via.

    Teoricamente dovrebbe funzionare, ma mi sto un pò impallando in questo:

    La tabella diventa:

    ID | ID_Categoria | Nome | Ordine
    1 |1| Palla |3|
    2 |2| Casa |3|
    3 |1|2| Sci |2|1|
    4 |1|2| Mouse |1|2|


    Voglio ordinare, ad esempio, la categoria 1, che contiene Palla,Sci e Mouse ...l'ordine dovrebbe essere Mouse,Sci,Palla ...

    Come eseguo la query ?

    PS: se qualcuno ha letto fin qui, e ci ha capito qualcosa, gli regalo il mio nuovo mouse laser !
    Webplease.it WebAgency
    www.webplease.it

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Secondo me unisci confusione a confusione.
    Dovresti usare un'altra tabella che leghi l'id del prodotto con l'id della o delle categorie.
    Così non duplichi nulla ed hai una base dati decente.

    Roby

  3. #3
    tabella_prodotti
    id_prodotto - contatore
    nome_prodotto - testo
    ... altri campi ...

    tabella_categorie
    id_categoria - contatore
    nome_categoria - testo
    ... altri campi ...

    relazione_prodotti_categorie
    id_prodotto - numerico
    id_categoria - numerico

    Chiaro?

  4. #4
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    Ciao Roby,

    quindi tu mi consigli di non inserire il campo ID_Categoria dentro i prodotti ? E nemmeno il campo ordine ? ...e di gestire le 2 cose in un'altra tabella ?

    Domenix, credo che tu mi stia consigliando la stessa cosa ...forse però, non mi è chiara una cosa: io lavoro su un DB Access, come posso da ASP creare le relazioni utilizzando una query ?
    Webplease.it WebAgency
    www.webplease.it

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi usare la INNER JOIN per estrapolare dati di entrambi le tabella collegate in base al campo id_prodotto.

    Roby

  6. #6
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    siete stati illuminanti ...grazie 1000


    Peccato che la mia lampadina non si è accesa subito
    Webplease.it WebAgency
    www.webplease.it

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 © 2026 vBulletin Solutions, Inc. All rights reserved.