Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461

    doppio ciclo con esclusione di dati in associazione

    Ciao a tutti!

    ho un problema con un doppio ciclo che mi sta facendo svalvolare!

    allora un ciclo mi estrae dei prodotti,piu precisamente i loro id, l'altro cilco(dentro il ciclo precedente) ha una query che mi deve prendere i componenti associati all' id del prodotto,
    e fin qui tutto ok.
    il problema pè che io NON devo fare stamapre componenti uguali, quindi associati a piu di un prodotto...ma non so proprio come dire al ciclo di escludere, mano a mano che stampa, i componenti gia stampati in precedenza!

    posto ora il codice cosi magari capirete meglio:


    <%
    Set pr=server.CreateObject("ADODB.Recordset")
    sqla="SELECT * FROM `PRODOTTO` WHERE P='"&request("p")&"' AND L='"&request("l")&"' AND H='"&request("h")&"' "
    pr.open sqla,conn,3,3
    do until pr.eof
    %>
    <%
    sql="SELECT * FROM PRODOTTO JOIN ASSOCIAZIONI ON PRODOTTO.ID_PR=ASSOCIAZIONI.ID_COM WHERE ASSOCIAZIONI.ID_CAT='"&request("id_cat")&"' AND ASSOCIAZIONI.ID_PA='"&pr("id_pr")&"' ORDER BY ID_COM"
    aprirs sql
    do until rs.eof
    %>

    qui ho omesso i dati che mi stampa ad es codice nome prezzo ecc...
    <%
    rs.movenext
    loop
    %>
    <%
    pr.movenext
    loop
    %>


    ora mettiamo che il prodotto 1 a associati i componenti ABC e il prodotto 2 ha componenti associati ABX questo ciclo mi stamperebbe una cosa del genere:

    A
    B
    C
    A
    B
    X

    magari la risoluzione è semplice ma io non riesco proprio a trovare una soluzione!!

  2. #2
    1. stai a fa' due ggiri quando te ne bbasta uno: metti la where della prima sql nella seconda e sei a posto
    2. nella seconda usa la distinct, e ri-sei appposto

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    la clausola DISTINCT non va l'avevo gia provata prima!

    per il WHERE come faccio visto che la prima quey mi estrae dalla tabella i prodotti e l'altra dalla stessa i componenti dei prodotti?

  4. #4
    per il WHERE: hai provato? tu prova, vedrai che funzia

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    sql="SELECT * FROM PRODOTTO JOIN ASSOCIAZIONI ON PRODOTTO.ID_PR=ASSOCIAZIONI.ID_COM WHERE PRODOTTO.P='"&request("p")&"' AND PRODOTTO.L='"&request("l")&"' AND PRODOTTO.H='"&request("h")&"' AND ASSOCIAZIONI.ID_CAT='"&request("id_cat")&"' "

    non funziona!

    se cambio l'uguaglianza: PRODOTTO.ID_PR=ASSOCIAZIONI.ID_COM con PRODOTTO.ID_PR=ASSOCIAZIONI.ID_PA mi stampa i prodotti "padre" ma come lo scritto io non stampa nulla giustamente perche i componenti non devono necessariamente avere H.L e P come le request ma possono avere solo H e P o H e L o P e L ecc...

  6. #6
    codice:
    SELECT * 
    FROM PRODOTTO JOIN ASSOCIAZIONI 
    ON PRODOTTO.ID_PR=ASSOCIAZIONI.ID_COM 
    AND ASSOCIAZIONI.ID_PA=PRODOTTO.ID_PR
    WHERE 
    ASSOCIAZIONI.ID_CAT='" & request("id_cat") & "' 
    AND P='" & request("p") & "'
    AND L='" & request("l") & "'
    AND H='" & request("h") & "' 
    ORDER BY ID_COM"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    mi restituisce un insieme vuoto!

  8. #8
    fatti stampare la stringa e controllala

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    461
    SELECT * FROM PRODOTTO JOIN ASSOCIAZIONI ON PRODOTTO.ID_PR=ASSOCIAZIONI.ID_COM AND ASSOCIAZIONI.ID_PA=PRODOTTO.ID_PR WHERE ASSOCIAZIONI.ID_CAT='1' AND P='400' AND L='1000' AND H='2000' ORDER BY ID_COM

    testata anche su mysql e da vuoto in effetti!
    mi sa che con questa query cerca tutti i componenti che hanno effettivamente H L e P come da richiesta...invece non devono necessariamente avere tutti e 3 i parametri alcuni ne hanno solo 1 alcuni solo 2...è questo il problema!

  10. #10
    allora NON avrebbe funzionato comunque! se basta uno su tanti vai con la OR, non con la AND...

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.