Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461

    associazione di piu tabelle di db

    CIao a tutti!
    Ho un problema un po complicato...!
    Dovrei costruire una query che mi estragga da una tabella che chiamo "PRODOTTI" tutta la lista di prodotti in base ad una categoria scelta precedentemente.
    Per fare cio' uso una query di questo tipo:
    sql="SELECT * FROM PRODOTTO WHERE ID_CAT='"&request("id_cat")&"'"
    dove ID_CAT è l'id della categoria(appartenente alla tabella "CATEGORIA").
    In questo modo posso stampare tutti i prodotti...e fin qui nessun problema..
    Pero' in base all'utente se è loggato nel sito o no(quindi nel mio caso se la session("id_cl") è piena o vuota)bisogna fare in modo che alla lista di prodotti appaiano eventuali sconti che sono presenti(e allocati in una tabella chiamata "SCONTI")pero questi sconti devono essere collocati nello stesso punto in cui viene stamapto il prodotto a cui lo sconto è associato(visto che utilizzo un ciclo do-until per stampare i prodotti!)
    Per questo motivo sto impazzendo e non riesco a trovare un modo per stampare questi sconti!!
    comuqnue le tabelle "CLIENTI" "PRODOTTI" sono tutte collegate allatabella "SCONTI "mediante
    un id_cl(id del cliente a cui viene messo lo sconto sul prodotto) e un id_pr(id del prodotto da scontare)
    Spero di essere stato abbastanza chiaro...!
    Grazie

  2. #2
    Distingui le query in base alla valorizzazione della session("id_cl")

    codice:
    if session("id_cl") ="" then
      sql="SELECT * FROM PRODOTTO WHERE ID_CAT='"&request("id_cat")&"'"
    else
      sql="SELECT * FROM PRODOTTO, SCONTO "
      sql=sql & " WHERE ID_CAT='" & request("id_cat") & "'"
      sql=sql & " and PRODOTTO.id_pr=SCONTO.id_pr
      sql=sql & " and PRODOTTO.id_cl='" & session("id_cl") & "'"
    end if

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    ho provato questa query ma mi da errore:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

    ODBC driver does not support the requested properties.

    ...io uso un database mySQL...in teoria l'errore lo da nella query..

    allora..ho provato a modificare un po la query:
    sql="SELECT * FROM PRODOTTO JOIN SCONTI ON PRODOTTO.ID_PR=SCONTI.ID_PR WHERE ID_CAT='"& request("id_cat") &"' AND SCONTI.ID_CL='"&session("id_cl")&"'"

    in questo modo non da errore ma non mi stampa nulla!nemmeno il prodotto a cui è associato lo sconto!

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Invece di usare select * metti l'elenco dei campi con le rispettive tabelle.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    niente!
    visto che non tutti hanno uno sconto quindi non ci sono record nella tabella sconti relativi a tutti i prodotti non posso nemmeno direif sconto=0 then....

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    allora cosi funziona la query:

    sql="SELECT * FROM PRODOTTO RIGHT OUTER JOIN SCONTI ON PRODOTTO.ID_PR=SCONTI.ID_PR WHERE SCONTI.ID_CL='"&session("id_cl")&"' AND ID_CAT='"&request("id_cat")&"'"

    Pero mi stampa solo i prodotti con associato lo sconto mentre gli altri senza associazione alla tabella sconti no!

    cosa dovrei fare?

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.