Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2017
    Messaggi
    45

    estrarre dati da due tabelle

    Buonasera Forum,
    ho bisogno del vostro supporto per sapere come fare a visualizzare in una pagina asp i record di due tabelle access, quasi identiche, così composte:

    la prima in uso si chiama "Prodotti" contiene i seguenti dati nell'ordine:
    ID, Cod, Cat, Marca, Descr, Disp, Img, Prezzo

    la seconda "Telefonia" contiene invece:
    ID, Marca, Cat, Cod, Descr, Img, Link, Prezzo, Disp

    L'ordine è diverso ma la pagina del catalogo dovrebbe caricare gli stessi dati, per cui credo sia fattibile.
    Purtroppo non so come fare a estrarli, ho individuato la porzione di codice da modificare, riuscite cortesemente a darmi indicazioni?

    Grazie per l'attenzione

    codice:
    <%
    If (QSSCategoria = "") AND (QSCategoria = "") AND (QSQuery = "") AND (SCategoria = "") Then
                                                   Response.Redirect Request.ServerVariables("HTTP_REFERER")
                                   Else
    '---Stampo a video i prodotti delle categorie richieste
                                                   Set RS = Server.CreateObject("ADODB.RecordSet")
                                                   RS.PageSize = MaxProdottiPerPagina
                                                  
                                                   If QSQuery2 <> "" Then
                                                                   QSQuery2 = Replace(QSQuery2, "'", "''")
                                                                   ArrQuery = Split(QSQuery2, " ")
                                                                   SQL = " SELECT * FROM Prodotti WHERE "
                                                                   For i = 0 to UBound(ArrQuery, 1)
                                                                                  SQL = SQL & "(categoriasotto LIKE '%" & ArrQuery(i) & "%' OR categoriasotto LIKE '%" & ArrQuery(i) & "%' OR categoriasotto LIKE '%" & ArrQuery(i) & "%') AND "
                                                                   Next
                                                                   SQL = SQL & "Cancellato = False"
                                                                   RS.Open SQL, Conn, 1
                                                   Else
                                                  
                                                                   If (QSSCategoria <> "") and (QSCategoria = "") Then
                                                                                  SQL = " SELECT * FROM Prodotti WHERE SCategoria = "& [QSSCategoria] &" AND Cancellato = False ORDER BY ID DESC "
                                                                                  RS.Open SQL, Conn, 1
                                                                   End If
                   
                                                                   If (QSCategoria <> "") and (SCategoria = "") Then
                                                                                  SQL = " SELECT * FROM Prodotti WHERE Categoria = "& [QSCategoria] &" AND Cancellato = False ORDER BY ID DESC"
                                                                                  RS.Open SQL, Conn, 1
                                                                   End If
                                                                   If (SCategoria <> "") AND (QSCategoria <> "") AND (SCategoria <> "")Then
    '                                                                              SQL = "SELECT * FROM Prodotti WHERE S_Categoria = "& [SCategoria] &" AND Cancellato = False ORDER BY ID DESC "
                                                                                  SQL = "SELECT * FROM Prodotti WHERE S_Categoria = "& [SCategoria] &" AND SCategoria = "& [QSSCategoria] &" AND Categoria = "& [QSCategoria] &" AND Cancellato = False ORDER BY ID DESC "
                                                                                  RS.Open SQL, Conn, 1
                                                                   end if
     
                                                   End If
                                                  
     
                                                   If Not RS.EoF Then 
                                                                   RS.MoveFirst
                                                                   RS.AbsolutePage = QSPg
     
    '               VERSIONE FILE 1.5.Ver.3 Moicans & Snake
    '               QSCategoria = Request.QueryString("cat")
    '               QSSCategoria = Request.QueryString("scat")
    '               SCategoria = Request.QueryString("ca")
     
                                                   Prima = "<img border=0 src=interfaccia/nav_prima.jpg align=center width=24 height=24>"
                                                   Precedente = "<img border=0 src=interfaccia/nav_sinistra.jpg align=center width=24 height=24>"
                ultima = "<img border=0 src=interfaccia/nav_ultima.jpg align=center width=24 height=24>"
                Successiva = "<img border=0 src=interfaccia/nav_destra.jpg align=center width=24 height=24>"
     
                                   If QSPg <> 1 Then
    Footer = "<a href=""catalogo.asp?scat=" & QSSCategoria & "&cat=" & QSCategoria & "&ca=" & SCategoria & "&pg=1&q=" & QSQuery & """>" & Prima & "</a> "
    Footer = Footer & "<a href=""catalogo.asp?scat=" & QSSCategoria & "&cat=" & QSCategoria & "&ca=" & SCategoria & "&pg=" & cLng(QSPg) - 1 & "&q=" & QSQuery & """>" & Precedente & "</a> "
                                                                   Else
                                                                                  Footer =  " "
                                     Footer = Footer &  " "
                                                                   End If
                                                                  
                                                                                  For I = 1 To RS.PageCount
                                                                                  If I = QSPg Then
                                                                                                  Footer = Footer & I & " "
                                                                                  Else
                                                                                                  ' Footer = Footer & "<font size = 4 color = red ><b><a href=""catalogo.asp?scat="&QSSCategoria&"&cat="&QSCategoria&"&pg="&i&"&q=" & QSQuery & """><font size = 2 ></b>"& I &"</font></a> "
                                                                                                  Footer = Footer & "<font size = 4 color = red ><b><a href=""catalogo.asp?scat="&QSSCategoria&"&cat="&QSCategoria&"&ca="&SCategoria&"&pg="&i&"&q=" & QSQuery & """><font size = 2 ></b>"& I &"</font></a> "
                                                                                  End If
                                                                   Next
                                                                  
     
                                                                   If QSPg <> RS.PageCount Then
    Footer = Footer & "<a href=""catalogo.asp?scat="&QSSCategoria&"&cat="&QSCategoria&"&ca="&SCategoria&"&pg="& cLng(QSPg) + 1 &"&q=" & QSQuery & """>" & Successiva & "</a> "
    Footer = Footer & "<a href=""catalogo.asp?scat="&QSSCategoria&"&cat="&QSCategoria&"&ca="&SCategoria&"&pg="&RS.PageCount&"&q=" & QSQuery & """>" & ultima & "</a>"
                                                                   Else
                                                                                  Footer = Footer & " "
                                                                   End If
     
                                                                   For I = 1 To RS.PageSize
                                                                                  If RS.EOF Then Exit For
    %>

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    cosa intendi per "estrarre i dati da due tabelle"?
    a seconda del risultato che vuoi ottenere la query può essere molto diversa...

    nel codice postato non vedo la stampa a video, dopo potrebbe servire.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2017
    Messaggi
    45
    Grazie Vincent.Zeno per la veloce risposta, mi spiego meglio.

    Il sito ha un DB Acess il cui nome E-Commerce.mdb ed estrae i dati dalla tabella Prodotti, adesso il fornitore ha messo a disposizione ma con un ordine diverso anche la tabella "Telefonia" con un incolonnamento diverso ma di uguali contenuti.

    Non so se la porzione di codice che ho postato è quella corretta, come faccio a leggere la tabella "Prodotti" e quella "Telefonia"?

    Spero di aver chiarito, se necessario allego l'intera pagina.

    Buona serata.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    quindi vuoi "accodare" i risultati della tabella "telefonia" alla tabella "prodotti"? con quale criterio? (ordinamento ecc ecc...)

    e se invece importassi i dati di telefonia in prodotti? faresti "prima" ma sopratutto meglio.

  5. #5
    Oppure usa UNION. Siccome le due tabelle sono praticamente uguali, dopo che hai creato la query sql e *prima* di eseguirla, puoi fare qualcosa del genere

    SQL=SQL + “ UNION “ + Replace(SQL, “Prodotti”, “Telefonia”)

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    mi sa che non avevo capito il contesto

    una cosa non ho chiesto: la tabella telefonia dove si trova?

    intendo dire... hai il tuo db "E-Commerce.mdb" con dentro la tabella "prodotti", come ti arriva la tabella "telefonia"?
    o stai cambiando tutto il db con dentro le due tabelle?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2017
    Messaggi
    45
    Mi spiego nuovamente Vincent.Zeno, la difficoltà di farmi comprendere nasce dall'inesperienza.
    Nel db che scarico ogni giorno dal fornitore ho la tabella "Prodotti" insieme a tutte le altre funzionali all'utilizzo del sito come nel codice postato, da alcuni mesi è stata aggiunta anche la tabella "Telefonia" che non so come estrarre.
    Leggendo nei forum forse la strada della clausola Union, From, Where che poi è quella indicata da Optime è quella da percorrere ma non so come modificare il codice.

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    la soluzione con UNION ALL (come dice optime) dovrebbe essere la più adatta.

    ma:
    ti serve poi recuperare l'ID del singolo articolo, tipo per farci un link a una pagina dedicata?
    nel caso bisognerà recuperare il nome della tabella di origine.

    la clausola UNION ALL necessita dello stesso numero di campi da interrogare.
    visto che le tabelle hanno un diverso numero di campi dovrai specificare i campi da unire (quindi direi tutti tranne il campo "link" della tabella "telefonia")

    un po' di documentazione:
    https://www.w3schools.com/sql/sql_union.asp
    https://www.mrwebmaster.it/sql/usare...lect_7395.html

  9. #9
    Aggiungi anche un campo per identificare la tabella di origine (es.: “P” AS Origine)

    i suggerimenti li hai, fa’ un po’ di prove

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2017
    Messaggi
    45
    Eccomi finalmente, sono giorni che tento di accedere al forum ma il browser mi indicava che la connessione non era sicura per un certificato scaduto.

    A parziale rettifica le due tabelle del DB Access sono assolutamente identiche per cui UNIO ALL va benissimo, e quindi ho apportato la seguente modifica:

    codice:
                        SQL = "SELECT * FROM Prodotti WHERE S_Categoria = "& [SCategoria] &" AND SCategoria = "& [QSSCategoria] &" AND Categoria = "& [QSCategoria] &" AND Cancellato = False ORDER BY PREZZO "
                        UNION ALL
                        SQL = "SELECT * FROM Telefonia WHERE S_Categoria = "& [SCategoria] &" AND SCategoria = "& [QSSCategoria] &" AND Categoria = "& [QSCategoria] &" AND Cancellato = False ORDER BY PREZZO "
    In questo modo la pagina non mi restituisce errori ma ignora completamente la tabella Prodotti

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.