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

    Relazione tra 2 tabelle dello stesso DB

    Ciao ragazzi, ho un piccolo problema...
    Ho una db access con 2 tabelle differenti che però devono "parlare" tra di loro.

    Un tabella è tUtenti e l'altra è tAuto

    tUtenti è cosi strutturata
    id
    id_auto
    nome
    cognome
    indirizzo

    tAuto è cosi strutturata
    id_auto
    marca
    modello
    colore

    Devo far si che quanndo visualizzo il nome dell'utente, ci sia anche il modello dell'auto

    ---------------------------------------------
    Il codice che sto utilizzando è questo
    <%
    Set Conn = Server.CreateObject("adodb.connection")
    Conn.Open = "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/mdb-database/db.mdb")
    Sql = "SELECT * FROM tAuto, tUtenti WHERE ID=" & session("id")
    Set Rs = Conn.Execute(Sql)
    %>

    Benvenuto <% = Rs("nome") %><% = Rs("cognome") %> nella tua area riservata. Ti ricordiamo che la tua auto è una <% = Rs("marca") %><% = Rs("modello") %>

    <%
    Rs.Close
    Conn.Close
    %>
    ---------------------------------------------

    Ovviamente non funziona, però il sessionID mi serve per forza.
    Come posso fare???

    Grazie a tutti

  2. #2
    1. "non funziona" non vuol dire niente, specifica il problema
    2. devi mettere in relazione le due tabelle con una JOIN

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    113
    Ciao,
    non funziona vuol dire che l'errore che genere è:
    ADODB.Recordset error '800a0cc1'
    Item cannot be found in the collection corresponding to the requested name or ordinal.
    /reserved/utente.asp, line 56

    Dove ovviamente la linea 56 è questa:
    Benvenuto <% = Rs("nome") %> <% = Rs("cognome") %> nella tua area riservata. Ti ricordiamo che la tua auto è una <% = Rs("marca") %> <% = Rs("modello") %>


    Come funziona il JOIN? Scusa non l'ho mai utilizzato e non ho idea di cosa sia, sto cercando un pò online ma non è molto chiaro...
    Grazie mille

    P.S.
    Ovviamente sul database di access ho fatto la relazione tra id_auto nelle due tabelle!

  4. #4
    qui http://it.wikipedia.org/wiki/Join_(SQL)

    comunque, la teoria è

    SELECT colonne_tabella1, colonne_tabella2
    FROM tabella1 INNER JOIN tabella2
    ON colonna_comune_tabella1=colonna_comune_tabella2

    nel tuo caso il campo comune è id_auto

    P.S. non fare "SELECT *" ma specifica esattamente le sole colonne che ti servono

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    113
    Sono riuscito a risolvere... Grazie mille dell'aiuto optime

  6. #6
    ----------------------------------------------------
    nello spirito del forum, spiega come hai fatto (postando la soluzione), così aiuterai qualche altro forumista che dovesse avere lo stesso problema.
    ------------------------------------------------------------------------

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    113
    Vero, scusatemi...

    Ho usato una INNER JOIN in questo modo


    <%
    Set Conn = Server.CreateObject("adodb.connection")
    Conn.Open = "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/mdb-database/db.mdb")
    Sql = "SELECT tAuto.ID_auto, tAuto.marca, tAuto.modello tUtenti.nome, tUtenti.cognome, tUtenti.ID FROM tAuto INNER JOIN tUtenti ON tAuto.ID_auto = tUtenti.ID_auto WHERE tUtenti.ID=" & session("id")
    Set Rs = Conn.Execute(Sql)
    %>

    Benvenuto <% = Rs("nome") %> <% = Rs("cognome") %> nella tua area riservata. Ti ricordiamo che la tua auto è una <% = Rs("marca") %> <% = Rs("modello") %>

    <%
    Rs.Close
    Conn.Close
    %>

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.