Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107

    problema con due tabelle

    Salve, da un paio di ore non riesco a risolvere un problema.
    Esempio:
    Ho una pagina prodotti.asp, nella quale ho elencati tutte le categorie di prodotti che ho inserito nel db, cliccando su una categoria mi apre una pagina dettaglio.asp nella quale ho elencati tutti i prodotti, e dove vorrei si elencassero tutte le marche dei prodotti.
    Il DB è composto da più tabelle tra cui prodotti e marche.
    La tabella marca comprende la marca e un ID, il quale è presente nella tabella prodotti.
    Per cui se la marca è HTML.IT e l'ID associato nella tabella marche è 1, nella tabella prodotti nella colonna Marca ho 1.

    Detto ciò non so come poter recuperare attraverso la colonna marca della tabella prodotti, il nome della marca e non il numero.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    "SELECT marca.marca FROM marca, prodotti WHERE prodotti.id = marca.id"

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107

    :(

    Grazie per la risposta, non va ma credo di sbagliare IO:
    questo è l'errore:
    Tipo di errore:
    Microsoft JET Database Engine (0x80004005)
    Il riferimento al campo specificato 'ManufacturerID' potrebbe essere relativo a più tabelle elencate nella proposizione FROM dell'istruzione SQL.


    ecco ciò che faccio:
    Tabella Prodotti=Products ----Colonna marca ManufacturerID

    Tabella Marca=Manufacturer----- Colonna nome marca=
    Manufacturer (dove c'è il nome della marca) Colonna numerica con lo stesso numero della tabella prodotti=ManufacturerID
    codice:
    <%
    Dim m
    Dim m_numRows
    
    Set m = Server.CreateObject("ADODB.Recordset")
    m.ActiveConnection = MM_CharonCart_STRING
    m.Source = "SELECT Manufacturer.Manufacturer  FROM  Manufacturers, Products  WHERE ManufacturerID = ManufacturerID"
    m.CursorType = 0
    m.CursorLocation = 2
    m.LockType = 1
    m.Open()
    
    m_numRows = 0
    %>

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    m.Source = "SELECT Manufacturers.Manufacturer FROM  Manufacturers, Products WHERE Manufacturers.ManufacturerID = Products.ManufacturerID"
    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107

    errore riscontrato:

    Tipo di errore:
    Microsoft JET Database Engine (0x80004005)
    Tipo non corrispondente nell'espressione.
    /cartv3/detailscat.asp, line 40

    la linea 40 è:
    codice:
    <%
    Dim m
    Dim m_numRows
    
    Set m = Server.CreateObject("ADODB.Recordset")
    m.ActiveConnection = MM_CharonCart_STRING
    m.Source = "SELECT Manufacturers.Manufacturer  FROM Manufacturers, Products  WHERE Manufacturers.ManufacturerID = Products.ManufacturerID"
    m.CursorType = 0
    m.CursorLocation = 2
    m.LockType = 1
    m.Open()(RIGA 40)
    m_numRows = 0
    %>

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ovviamente i campi che metti in relazione devono prima di tutto esistere e poi essere dello stesso tipo: numerico-numerico, contatore-numerico...

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107
    In efetti nelle varie prove di ieri notte, avevo modificato l'attributo nella tabella, adesso il recordset funziona, ma non come lo vorrei io.

    Nel senso che mi restituisce tutti i valori, cioè tutte le marche.

    Invece io vorrei che lui mi restituisse soltanto le marche di una categoria che filtro con questo recordset:

    codice:
    <%
    set Products = Server.CreateObject("ADODB.Recordset")
    Products.ActiveConnection = MM_CharonCart_STRING
    Products.Source = "SELECT * FROM Products WHERE CategoryID = " + Replace(Products__MMColParam, "'", "''") + " ORDER BY Price ASC"
    Products.CursorType = 0
    Products.CursorLocation = 2
    Products.LockType = 1
    Products.Open()
    Products_numRows = 0
    %>

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ok, ora devi mettere la WHERE nella SELECT filtrando con la variabile che recuperi il campo con la categoria.

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107
    Ok, penso di essere molto vicino alla soluzione, ma non ancora del tutto in quanto se stabilisco io una categoria mi filtra esattamente le marche per quei prodotti di quella categoria.
    Ma se invece, come vorrei, la categoria se la prendesse in automatico, come fa il recordoset products mi restituisce i valori di tutte le marche:

    Recordset Prodotti, mi restituisce tutti i prodotti di una categoria che scelgo in una pagina anteriore.
    codice:
    <%
    Dim Products__MMColParam
    Products__MMColParam = "CategoryID "
    If (Request.QueryString("CategoryID")  <> "") Then 
      Products__MMColParam = Request.QueryString("CategoryID") 
    End If
    %>
    <%
    set Products = Server.CreateObject("ADODB.Recordset")
    Products.ActiveConnection = MM_CharonCart_STRING
    Products.Source = "SELECT *  FROM Products  WHERE CategoryID = " + Replace(Products__MMColParam, "'", "''") + "  ORDER BY Price ASC"
    Products.CursorType = 0
    Products.CursorLocation = 2
    Products.LockType = 1
    Products.Open()
    Products_numRows = 0
    %>
    Recordset marche mi dovrebbe restituire le marche dei prodotti che ho scelto, inserendo un valore di una categoria come 1, mi restituisce tutte le marche della prima categoria, se inserisco invece products.CategoryID me le restituisce tutte
    codice:
    <%
    Dim m__MMColParam
    m__MMColParam = "1" 
    If (Request.QueryString("products.CategoryID")    <> "") Then 
      m__MMColParam = Request.QueryString("products.CategoryID")   
    End If
    %>
    <%
    Dim m
    Dim m_numRows
    
    Set m = Server.CreateObject("ADODB.Recordset")
    m.ActiveConnection = MM_CharonCart_STRING
    m.Source = "SELECT Manufacturers.Manufacturer  FROM Manufacturers, Products  WHERE Manufacturers.ManufacturerID = Products.ManufacturerID AND Products.CategoryID = " + Replace(m__MMColParam, "'", "''") + ""
    m.CursorType = 0
    m.CursorLocation = 2
    m.LockType = 1
    m.Open()
    m_numRows = 0
    %>

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    107

    please


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 © 2026 vBulletin Solutions, Inc. All rights reserved.