Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    selezione da campo multivalore

    Salve,
    ho la necessità di estrarre da un campo testo con valori separati da virgola, il valore corrispondente ad un'altra tabella contenete record con gli stessi valori.
    Mi spiego meglio.

    Tabella A - colonna con serie di record - (id-titolo)
    esempio: (1-valore1) (2-valore2) ecc.

    Tabella B - colonna con un con un campo testo - (titolo)
    esempio: (valore1,valore2,ecc.)

    devo estrarre il record della tabella A che corrisponde ad uno dei valori contenuti nel campo multivalore della tabella B

    ecco come ho fatto:
    ("SELECT * FROM tabellaA WHERE (', titolo, ') LIKE ('%," & ValoreTabellaB & ",%') ")
    e naturalmente non funge

    aiutino?
    Danio Felloni
    web applications development

  2. #2
    devi splittare tutte le voci e farle rientrare in una OR. che db usi?

  3. #3
    un mdb (access), sto in effetti provado a splittare

    if isnull(rs("Valore TabellaB")) then
    else
    Dim i, x
    ' Instanzio un contatore numerico
    i = 0
    ' Divido i dati recuperati in un array di stringa
    x = Split(rs("ValoreTabellaB"), ",")
    Seleziono con il ciclo con un ciclo tutti i dati
    For i = 0 to UBound(x)
    ("SELECT id, titolo FROM tabellaA WHERE titolo = "& x(i)) &" ")
    Next
    End If


    sto provando ma non riesco a raggiungere lo scopo
    Danio Felloni
    web applications development

  4. #4
    Ho cambiato metodo,

    nella TabellaB invece di valori (valore1,valore2,valore3,valore4) ho inserito (1,2,3,4)
    poi ho modificato il codice



    'inizio array
    ' Dichiaro le variabili che mi servono
    if isnull(rs("ValoreTabellaB")) then
    else
    Dim i, x
    ' Instanzio un contatore numerico
    i = 0
    ' Divido i dati recuperati in un array di stringa
    x = Split(rs("ValoreTabellaB"), ",")
    ' Seleziono con il ciclo con un ciclo tutti i dati
    For i = 0 to UBound(x)
    ("SELECT id, titolo FROM TabellaA WHERE id = "& x(i)&" ")
    Next
    End If

    ho il primo risultato e nella select mi esce però solo il valore "4"
    Danio Felloni
    web applications development

  5. #5
    il valore x(i) lo devi usare per costruire la stringa di interrogazione, per la parte

    " OR titolo = " & x(i)) & " "

    il prima e dopo sono fissi, li aggiungerai all'uscita dal ciclo. poi esegui la stringa così ottenuta

  6. #6
    Problema risolto, ecco il codice per gli amici

    Ho cambiato metodo,

    nella TabellaB invece di valori (valore1,valore2,valore3,valore4) ho inserito (1,2,3,4)
    poi ho modificato il codice

    <select multiple name="pippo">
    <%
    'inizio array
    ' Dichiaro le variabili che mi servono
    if isnull(rs("ValoreTabellaB")) then
    else
    Dim i, x
    ' Instanzio un contatore numerico
    i = 0
    ' Divido i dati recuperati in un array di stringa
    x = Split(rs("ValoreTabellaB"), ",")
    ' Seleziono con il ciclo con un ciclo tutti i dati
    For i = 0 to UBound(x)
    ("SELECT id, titolo FROM TabellaA WHERE id = "& x(i)&" ")
    Next %>
    <option selected value="<%= rsa("titolo")%>"><%= rsa("id")%></option>
    <% End If %>

    </select>

    adesso va bene
    Danio Felloni
    web applications development

  7. #7
    provo comunque a fare quello che dici, grazie
    Danio Felloni
    web applications development

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.