Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Relazione tra tabelle

  1. #1

    Relazione tra tabelle

    Salve a tutti
    avrei bisogno di estrapolare alcuni dati da una tabella il cui campo è in relazione con un'altra tabella.

    Pagina1.asp
    recupero e stampo a video tutti i dati della tabella FIGLI.

    nella tabella FIGLI ho un campo COD_GENITORE che nella tabella GENITORI è il campo chiave.

    Adesso vorrei che scorrendo i recordset della tabella FIGLI venga stampato anche il nome del relativo genitore.

    In verità facendo alcune prove sono riuscito, IN PARTE, a stampare il dato voluto...
    'unico problema e che quando scorre il record stampa sempre solo il record 1

    ecco un po di codice:

    Con questo mi preparo il recordset per impaginare tutti i figli
    codice:
    rsFIGLI.Source = "SELECT *  FROM ALUNNI_NUOVI "
    con questo vorrei mettere in relazione le tabelle
    codice:
    rsGenitori.Source = "SELECT *  FROM GENITORI, ALUNNI_NUOVI WHERE  USE_ID = COD_GENITORE "
    Ripeto, nessun errore nell impaginazione... solo che della tabella genitori viene recuperato sempre e solo il primo USE_ID

    Qualche consiglio?
    Grazie
    Scusate sto imparando!

  2. #2
    posta un po' di codice, grazie

  3. #3
    <%
    '********Seleziono i dati dalla tabella alunni *********'
    Dim rsAlunni
    Dim rsAlunni_numRows
    Set rsAlunni = Server.CreateObject("ADODB.Recordset")
    rsAlunni.ActiveConnection = MM_connIWGallery_STRING
    rsAlunni.Source = "SELECT * FROM ALUNNI_NUOVI WHERE true ORDER BY Data_Scadenza ASC "
    rsAlunni.CursorType = 0
    rsAlunni.CursorLocation = 2
    rsAlunni.LockType = 1
    rsAlunni.Open()
    rsAlunni_numRows = 0
    %>
    <%
    '********Seleziono i dati dalla tabella genitori *********'
    Dim rsGenitori
    Set rsGenitori = Server.CreateObject("ADODB.Recordset")
    rsGenitori.ActiveConnection = MM_connIWGallery_STRING
    rsGenitori.Source = "SELECT * FROM GENITORI, ALUNNI_NUOVI WHERE USE_ID = COD_GENITORE "
    rsGenitori.CursorType = 0
    rsGenitori.CursorLocation = 2
    rsGenitori.LockType = 1
    rsGenitori.Open()
    %>

    Stampo i dati

    <tr class="first">
    <%
    While ((startrw <= endrw) AND (Not rsAlunni.EOF))
    %>

    <td style="width: 220px;"><%=rsAlunni("nome_alunno")%></span></td>



    <td style="width: 220px;"><%=rsGenitori("use_first")%>
    <%=rsGenitori("use_last")%></td>
    <%
    startrw = startrw + 1
    rsAlunni.MoveNext()
    Wend
    %>
    </tr>

    che debba isare UNION??
    Scusate sto imparando!

  4. #4
    rsAlunni è perfettamente inutile, tutti i dati li trovi in rsGenitori (esplicitata così)

    SELECT * FROM ALUNNI_NUOVI JOIN GENITORI ON USE_ID = COD_GENITORE ORDER BY nome_alunno


  5. #5
    Originariamente inviato da optime
    rsAlunni è perfettamente inutile, tutti i dati li trovi in rsGenitori (esplicitata così)

    SELECT * FROM ALUNNI_NUOVI JOIN GENITORI ON USE_ID = COD_GENITORE ORDER BY nome_alunno

    In verità io prenso che rsAlunni sia piu importante... mi serve anche per impaginare...

    nella tabella genitori ci sono solo i dati relativi ai genitori
    invece in quella alunni tutti i dati dei ragazzi avendo il campo COD_GENITORE per associarlo!

    se facio così?
    codice:
    Dim rsAlunni
     Dim rsAlunni_numRows
     Set rsAlunni = Server.CreateObject("ADODB.Recordset")
     rsAlunni.ActiveConnection = MM_connIWGallery_STRING
     rsAlunni.Source = "SELECT * FROM ALUNNI_NUOVI JOIN GENITORI ON USE_ID = COD_GENITORE ORDER BY Data_Scadenza ASC "
     rsAlunni.CursorType = 0
     rsAlunni.CursorLocation = 2
     rsAlunni.LockType = 1
     rsAlunni.Open()
     rsAlunni_numRows = 0
    Scusate sto imparando!

  6. #6
    Originariamente inviato da max1975_na
    In verità io prenso che rsAlunni sia piu importante... mi serve anche per impaginare...

    nella tabella genitori ci sono solo i dati relativi ai genitori
    invece in quella alunni tutti i dati dei ragazzi avendo il campo COD_GENITORE per associarlo!

    se facio così?
    codice:
    Dim rsAlunni
     Dim rsAlunni_numRows
     Set rsAlunni = Server.CreateObject("ADODB.Recordset")
     rsAlunni.ActiveConnection = MM_connIWGallery_STRING
     rsAlunni.Source = "SELECT * FROM ALUNNI_NUOVI JOIN GENITORI ON USE_ID = COD_GENITORE ORDER BY Data_Scadenza ASC "
     rsAlunni.CursorType = 0
     rsAlunni.CursorLocation = 2
     rsAlunni.LockType = 1
     rsAlunni.Open()
     rsAlunni_numRows = 0
    mi rispondo da solo:
    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nella proposizione FROM.
    Scusate sto imparando!

  7. #7
    intendevo rsGenitori per come viene popolata, non per il nome (potevo chiamarla rsFrittelle e avrebbe comunque contenuto i dati anche degli alunni!)

    per l'errore, se usi access metti INNER JOIN

  8. #8
    Scusa Optime se non ho dato piu seguito a questo post ma sono stato impegnato su altro!

    Adesso, rileggendolo mi rendo conto di aver perso un poco il filo o di non essermi spiegato bene (come al solito)

    Vorrei riprenderlo semplificando un pò e quindi chiedo (cambiando un po i nomi)

    Diciamo che ho una "pagina libri_listing.asp" che mi stampa tutti i liblri presenti nella tabella LIBRI, mostrando i seguenti campi:
    id_autore, nome_libro, data_uscita, prezzo_libro.
    la mia query è logicamente questa:
    codice:
    'rsLibri.Source = "SELECT *  FROM LIBRI WHERE true  ORDER BY Data_Scadenza ASC "
    
    <% If Not rsLibri.EOF Or Not rsLibri.BOF Then %>
                                <%
                                startrw = 0
                                endrw = HLooper2__index
    
                                numberColumns = 1   'qui recupera i valori dalla configurazione di quante colonne visualizzare
                                numrows = 80		'qui recupera i valori dalla configurazione di quante righe visualizzare
                                'RR---------------
                                RR_group = MM_size
                                RR_counter = 0
                                RR_pages = TM_counter
                                '-----------------
    
                                while((numrows <> 0) AND (Not rsLibri.EOF))
                                startrw = endrw + 1
                                endrw = endrw + numberColumns
                                 %>
    														<tr class="first">
    														<%
                                While ((startrw <= endrw) AND (Not rsLibri.EOF))
                                %>
    <tr class="first">
    														<%
                                While ((startrw <= endrw) AND (Not rsAlunni.EOF))
                                %>
    
    															<td style="width: 220px;"><span class="approved"><%=rsLibri("nome_Autore_da_tabella_autore")%></span></td>
    <td style="width: 220px;"><span class="approved"><%=rsLibri("nome_Libro")%></span></td>
    <%=rsLibri("prezzo_libro")%></span></td>
    
    <%
                    							startrw = startrw + 1
                    							rsLibri.MoveNext()
                    							Wend
                    							%>
    														</tr>
    														<%
                                 numrows=numrows-1
                                'RR----------------------
                                RR_counter = RR_counter+1
                                '------------------------
                                 Wend
                                 %>
    Fin qui, tutto bene...

    Adesso vorrei stampare anche il Nome dell'autore, che è presente in un'altra tabella AUTORI, cosi strutturata:
    id_autore, nome_autore, cognome_autore .....

    Adesso, innanzitutto è possibile utilizzare rsLibri per impaginare il dato della tabella AUTORI

    Che strada devo usare, parlavamo di INNER JOIN... è giusto?
    Se lo fosse, puoi aiutorami un po con il codice?

    Grazie!
    Scusate sto imparando!

  9. #9
    Originariamente inviato da max1975_na
    Scusa Optime se non ho dato piu seguito a questo post ma sono stato impegnato su altro!

    Adesso, rileggendolo mi rendo conto di aver perso un poco il filo o di non essermi spiegato bene (come al solito)

    Vorrei riprenderlo semplificando un pò e quindi chiedo (cambiando un po i nomi)

    Diciamo che ho una "pagina libri_listing.asp" che mi stampa tutti i liblri presenti nella tabella LIBRI, mostrando i seguenti campi:
    id_autore, nome_libro, data_uscita, prezzo_libro.
    la mia query è logicamente questa:
    codice:
    'rsLibri.Source = "SELECT *  FROM LIBRI WHERE true  ORDER BY Data_Scadenza ASC "
    
    <% If Not rsLibri.EOF Or Not rsLibri.BOF Then %>
                                <%
                                startrw = 0
                                endrw = HLooper2__index
    
                                numberColumns = 1   'qui recupera i valori dalla configurazione di quante colonne visualizzare
                                numrows = 80		'qui recupera i valori dalla configurazione di quante righe visualizzare
                                'RR---------------
                                RR_group = MM_size
                                RR_counter = 0
                                RR_pages = TM_counter
                                '-----------------
    
                                while((numrows <> 0) AND (Not rsLibri.EOF))
                                startrw = endrw + 1
                                endrw = endrw + numberColumns
                                 %>
    														<tr class="first">
    														<%
                                While ((startrw <= endrw) AND (Not rsLibri.EOF))
                                %>
    <tr class="first">
    														<%
                                While ((startrw <= endrw) AND (Not rsAlunni.EOF))
                                %>
    
    															<td style="width: 220px;"><span class="approved"><%=rsLibri("nome_Autore_da_tabella_autore")%></span></td>
    <td style="width: 220px;"><span class="approved"><%=rsLibri("nome_Libro")%></span></td>
    <%=rsLibri("prezzo_libro")%></span></td>
    
    <%
                    							startrw = startrw + 1
                    							rsLibri.MoveNext()
                    							Wend
                    							%>
    														</tr>
    														<%
                                 numrows=numrows-1
                                'RR----------------------
                                RR_counter = RR_counter+1
                                '------------------------
                                 Wend
                                 %>
    Fin qui, tutto bene...

    Adesso vorrei stampare anche il Nome dell'autore, che è presente in un'altra tabella AUTORI, cosi strutturata:
    id_autore, nome_autore, cognome_autore .....

    Adesso, innanzitutto è possibile utilizzare rsLibri per impaginare il dato della tabella AUTORI

    Che strada devo usare, parlavamo di INNER JOIN... è giusto?
    Se lo fosse, puoi aiutorami un po con il codice?

    Grazie!
    Vorrei precisare che anche con questa query
    rsLIBRI.Source = "SELECT * FROM AUTORI, LIBRI WHERE true ORDER BY Data_Scadenza ASC "

    vado bene, ovvero non riscontro errori ma non avendo nessuna condizione, perche voglio stampare tutti i dati della tabella LIBRI, come nome_autore visualizzo sempre lo stesso nome, avvero il primo ID inserito

    Grazie
    Scusate sto imparando!

  10. #10

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.