Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262

    SQL con condizioni sbagliate ?

    Salve, ho creato un SQL che mi permetta, partendo da valori recuperati da select dinamiche spedite da un 'altra pagine, di accoppiare fra loro i valori collegati in tre diverse tabelle. Almeno questa era la mia intenzione.
    Purtroppo però l'accoppiamento è puramente casuale non rispettando le select della pagina da cui provengono i suddetti valori. Credo che l'errore siano le condizioni della clausola WHERE che ho mal impostato.
    Mi rendo conto che non mi sono spiegato un gran che, scusatemi.
    Posto il codice della SQL
    codice:
    querysql=" SELECT fondo.id_fondo, serie.id_fondo, sezione.id_fondo, serie.id_serie, sezione.id_sezione, serie.id_sezione, fondo.fondo, serie.serie, sezione.sezione FROM sezione INNER JOIN (fondo INNER JOIN serie ON fondo.id_fondo = serie.id_fondo) ON sezione.id_sezione = serie.id_sezione WHERE fondo.id_fondo AND serie.id_fondo AND sezione.id_fondo =" & id_fondo

  2. #2
    Quote Originariamente inviata da nilats Visualizza il messaggio
    Salve, ho creato un SQL che mi permetta, partendo da valori recuperati da select dinamiche spedite da un 'altra pagine, di accoppiare fra loro i valori collegati in tre diverse tabelle. Almeno questa era la mia intenzione.
    Purtroppo però l'accoppiamento è puramente casuale non rispettando le select della pagina da cui provengono i suddetti valori. Credo che l'errore siano le condizioni della clausola WHERE che ho mal impostato.
    Mi rendo conto che non mi sono spiegato un gran che, scusatemi.
    Posto il codice della SQL
    codice:
    querysql=" SELECT fondo.id_fondo, serie.id_fondo, sezione.id_fondo, serie.id_serie, sezione.id_sezione, serie.id_sezione, fondo.fondo, serie.serie, sezione.sezione FROM sezione INNER JOIN (fondo INNER JOIN serie ON fondo.id_fondo = serie.id_fondo) ON sezione.id_sezione = serie.id_sezione WHERE fondo.id_fondo AND serie.id_fondo AND sezione.id_fondo =" & id_fondo
    non hai indicato con che db lavori ma comunque,
    WHERE fondo.id_fondo AND serie.id_fondo AND sezione.id_fondo ="
    e' sicuramente errato

    dovresti scrivere un qualcosa tipo :
    WHERE fondo.id_fondo=xxxx AND serie.id_fondo=yyyy AND sezione.id_fondo =zzzz

    sostituendo opportunamente xxxx yyyy zzzz con quello che occorre nel tuo caso
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    non hai indicato con che db lavori ma comunque,
    WHERE fondo.id_fondo AND serie.id_fondo AND sezione.id_fondo ="
    e' sicuramente errato

    dovresti scrivere un qualcosa tipo :
    WHERE fondo.id_fondo=xxxx AND serie.id_fondo=yyyy AND sezione.id_fondo =zzzz

    sostituendo opportunamente xxxx yyyy zzzz con quello che occorre nel tuo caso
    La connessione al DB sta scritta poco prima.
    A me al posto delle incognite serve appunto il valore id_fondo che è sempre uguale per ognuna delle tabelle (che poi è raffrontato con l'id_fondo che è spedito dalla select della pagina precedente)

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    Spero di esser più chiaro linkando la pagine interessate per vedere il meccanismo che intendo, spero, creare ...

    http://ascm.somee.com/txt/ricerca_avanzata.asp

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Come ti diceva bomberdini la WHERE non rispetta la sintassi SQL

    Se la tua variabile id_fondo restituisce un numero allora la sintassi SQL diventa:
    codice:
    ....... WHERE fondo.id_fondo =" & id_fondo & " AND serie.id_fondo =" & id_fondo & " AND sezione.id_fondo =" & id_fondo
    .
    Ultima modifica di nman; 08-05-2014 a 12:52

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    Ancora nulla. E' come se non catturasse nelle variabili i dati trasmessi dalla pagina precedente, restituendomi a video valori a casaccio (che però vengono visualizzati come esatti nella barra di stato).

    Posto il codice
    codice:
    <%
    id_fondo = Request.QueryString ("id_fondo")
    id_sezione = Request.QueryString("id_sezione")
    id_serie = Request.QueryString("id_serie")
    
    
    
    
    MyDB="../database/database.mdb"
    Set conn = Server.CreateObject("ADODB.Connection")
    dsnpath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(myDB)
    conn.open dsnpath
    querysql=" SELECT fondo.id_fondo, fondo.fondo, sezione.id_sezione, sezione.id_fondo, sezione.sezione, serie.id_serie, serie.serie, serie.id_fondo, serie.id_sezione FROM sezione INNER JOIN (fondo INNER JOIN serie ON fondo.id_fondo = serie.id_fondo) ON sezione.id_sezione = serie.id_sezione WHERE fondo.id_fondo =" & id_fondo & " AND serie.id_fondo =" & id_fondo & " AND sezione.id_fondo =" & id_fondo
    
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open querysql, conn, 3, 3
    
    
    %>

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    262
    Qui però non credo sia giusta come sezione... mi sposto ma grazie a tutti

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.