Hej, Felet är att när du kollade i shoppen så köpte du inte ett bonusmedlemskap samtidigt ;-) Hej Pelle, Mickael. Testade: Du har två fel. Hej Benni, Ja det gällder ju att ha sina variabler med sig. Hej Benni, Först, ta olika namn t ex RS och RS1. Hej Benni, Inte än. Hej, Hej,Kombinera Produkter och Varukorgen
Försökt att kombinera produkter och varukorgen i webbshopen som finns på Pellesoft men då jag gjorde om hämtningen ur varukorgens Sql-sats till variabler fick jag att Sidan inte kan visas.
Är det Helt tokigt som jag tänkt lösa "uppgiften"?
<!-- #include file="inccard.asp" -->
<%
'*************************************************************************
'#========================= BÖRJAN KATEGORIER ===========================#
'*************************************************************************
'#======= Öppna databasen och hämta alla produkter. ======#
Dim Produkter_Kategori, Produkter_ProdId, Produkter_Produkt, Produkter_Beskrivning, Produkter_Pris, Produkter_KatId
Set Connection = Server.CreateObject("ADODB.Connection")
SET Connection = ShopIT_GetDatabaseConn()
Sql_prod = "SELECT Kat.Kategori, Prod.ProdId, Prod.Produkt, Prod.Beskrivning, Prod.Pris, Kat.KatId FROM Kat, Prod WHERE Kat.KatId = Prod.KatId AND (Kat.KatId = " & Request("KatId") & ")"
SET RS = Connection.Execute(Sql_prod)
Produkter_Kategori = RS("Kategori")
Produkter_ProdId = RS("ProdId")
Produkter_Produkt = RS("Produkt")
Produkter_Beskrivning = RS("Beskrivning")
Produkter_Pris = RS("Pris")
Produkter_KatId = RS("KatId")
'***************************************************************************
'#======================== SLUT KATEGORIER ================================#
'***************************************************************************
%>
<%
'***************************************************************************
' #========================= BÖRJAN VARKORGEN =============================#
'***************************************************************************
'#====== Sätter AnvID till det sessionID som vi sparade tidigare ==========#
Dim AnvID
AnvID = Session("KundID")
'#==== Öppna databasen och hämta alla produkter som är lagda i korgen. ====#
Dim Varukorg_Antal, Varukorg_KorgId, Varukorg_ProdId, Varukorg_Produkt, Varukorg_Beskrivning, Varukorg_Pris, Varukorg_AnvId
Set Connection = Server.CreateObject("ADODB.Connection")
SET Connection = ShopIT_GetDatabaseConn()
'#======= Radera produkter i korgen om användaren valt att göra så. =======#
If Request("Id") <> "" Then
Sql_delete_vara = "DELETE FROM Korg Where KorgId =" & Request("Id")
Connection.Execute(Sql_delete_vara)
End If
Sql_kundkorg = "SELECT Korg.Antal, Korg.KorgId, Korg.ProdId, Prod.Produkt, Prod.Beskrivning, Prod.Pris, Korg.AnvId FROM Korg, Prod WHERE Korg.ProdId = Prod.ProdId AND (Korg.AnvId = " & AnvId & ") Order by Produkt"
SET RS = Connection.Execute(Sql_kundkorg)
Varukorg_Antal = RS("Antal")
Varukorg_KorgId = RS("KorgId")
Varukorg_ProdId = RS("ProdId")
Varukorg_Produkt = RS("Produkt")
Varukorg_Beskrivning = RS("Beskrivning")
Varukorg_Pris = RS("Pris")
Varukorg_AnvId = RS("AnvId")
'#========================== Räkna ut priset =============================#
Function GetPrice()
TotalPris = Varukorg_Antal * Varukorg_Pris
GetPrice = FormatNumber(TotalPris,2)
End Function
'**************************************************************************
' #======================== SLUT VARUKORGEN ==============================#
'**************************************************************************
%>
Sen skriver jag ut variablerna där dem ska in.
Hoppas Någon ser felet som inte jag ser...
Micke
Sv: Kombinera Produkter och Varukorgen
Skämt å sido - vad får du för fel, stäng av "visa egna http-felmeddelanden" via internet explorers tools/advanced-meny.Sv:Kombinera Produkter och Varukorgen
Skulle man vara bonusmedlem för att få ändra på webbshopen...Jag kanske gjorde nått man inte fick?
Felmeddelandet jag får efter att stängt avVisa-funktionen är:
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Antagligen, som jag förstår, är där olika funktionen som krockar med varandra. Eller...
Micke
edit: ville bara säga att Pellesoft är en Kanonsida. Lärt mig en hel del!Sv: Kombinera Produkter och Varukorgen
Innan du tilldela dina variabler, så skall du kolla om du fick med dig någonting, efter att ha hämtat
data ifrån databasen.
<code>
if not rs.eof then
'och gär skriver du dina variabler
</code>
Om du inte har ändrat alltför mycket, så skall nog det fungera.Sv:Kombinera Produkter och Varukorgen
Fick:
Extra ) in query expression 'Korg.ProdId = Prod.ProdId AND (Korg.AnvId = )'
Oxå pekar dem på raden där varukorgen ska köras!
Har inte ändrat utan bara försökt baka ihop dem olika funktionerna
MickeSv: Kombinera Produkter och Varukorgen
Din första SQL:
Sql_prod = "SELECT Kat.Kategori, Prod.ProdId, Prod.Produkt, Prod.Beskrivning, Prod.Pris, Kat.
KatId FROM Kat, Prod WHERE Kat.KatId = Prod.KatId AND (Kat.KatId = " & Request("KatId") & ")"
'bör vara
Sql_prod = "SELECT Kat.Kategori, Prod.ProdId, Prod.Produkt, Prod.Beskrivning, Prod.Pris,
Kat.KatId FROM Kat, Prod WHERE Kat.KatId = Prod.KatId AND Kat.KatId = " & Request("KatId")
Din andra SQL:
Sql_kundkorg = "SELECT Korg.Antal, Korg.KorgId, Korg.ProdId, Prod.Produkt, Prod.Beskrivning,
Prod.Pris, Korg.AnvId FROM Korg, Prod WHERE Korg.ProdId = Prod.ProdId AND
(Korg.AnvId = " & AnvId & ") Order by Produkt"
'bör vara
Sql_kundkorg = "SELECT Korg.Antal, Korg.KorgId, Korg.ProdId, Prod.Produkt, Prod.Beskrivning,
Prod.Pris, Korg.AnvId FROM Korg, Prod WHERE Korg.ProdId = Prod.ProdId
AND Korg.AnvId = " & AnvId & " Order by Produkt"
Du bör vara försiktig med parenteserna, det kan bli lite knepigt.
Sv:Kombinera Produkter och Varukorgen
Provade det med men jag tror att det är någonting med anslutningarna eller att koden stänger av recordeten...
eller så kan idan inte ta upp något ID!
Fick Nu:
Syntax error (missing operator) in query expression 'Korg.ProdId = Prod.ProdId AND Korg.AnvId ='.
Ska jag visa hela koden som ska köras på dem olika sidorna?
Koden finns förstås överst i tråden. Koden är sidan som anropas ifrån sidan där KatId ges.
mickeSv: Kombinera Produkter och Varukorgen
Testa deta, och lägg det högst upp på sidan.
Response.Write "String" & Request.QueryString & "<br>"
Response.Write "Form: " & Request.Form & "<br>"
Du måste också avmarkera dina rekordset, för annars så blir det fel.
Sv:Kombinera Produkter och Varukorgen
här händer märkliga saker :)
Utan att ha ändrat nått i koden så fick jag fram sidan!!!
Dock så syntes inga artiklar på sidan. Precis som den inte hämtat nått eller rättar sagt kört en sökning i databasen.
Avmarkera Recordseten, är det att man stänger dem?
Har testat innan att stänga varje körning ifrån databasen.
Edit: Jag kör en Do until RS.EOF längre ner på sidan i en tabell och det är den som inte vill köra.
Kan det vara för att det finns Två körningar:
SET RS = Connection.Execute(Sql_prod)
samt
Set RS = Connection.Execute(Sql_kundkorg)
Dem krockar på nått sätt...Eller
MickeSv: Kombinera Produkter och Varukorgen
Vad händer om du skriver ut din variavel?
response.write Produkter_Kategori
Skriv in det här efter det att du har tilldelat dem sina värden.
Sv:Kombinera Produkter och Varukorgen
Fått sidan att skriva ut det man valde av kategorierna. Ändrade namnet på recordseten rs resp rs1.
Problemet är nu att när man klickar på att lägga in nått i korgen så kommer en popup-ruta upp som berättar att varan lagts i korgen. Varukorgen uppdateras inte så därför kan den inte visa korgen.
Om man väljer att gå tillbaka med tillbaka-knappen och sen fram igen till sidan med prod/korg säger sidan:
Detta sker då man valt att lägga nått i korgen och javascriptet med alert-rutan körts
Item cannot be found in the collection corresponding to the requested name or ordinal.
Också pekar den på raden:
If Not RS1.EOF Then // Här pekar den!!!
Varukorg_Antal = RS("Antal")
Vill du se hur allt ser ut nu?
MickeSv: Kombinera Produkter och Varukorgen
När du försöker att uppdatera koden, får du något felmedellande då?
Om du fysiskt gå in i databasen, via access, kan du se om den har gjort någonting?
Jag utgår ifrån att du har alla rättigheterna satta, och att du inte har On Error Resume Next någonstans
i din kod.Sv:Kombinera Produkter och Varukorgen
Upptäckte Nu, mitt lilla blindstyre, att sidan skriver bara ut samma post ur produkt-tabellen där alla produkterna ska synas efter man valt på kategori på sidan innan.
Om jag försöker uppdatera sidan innan jag valt att lägga nått i korgen går det bra annars om jag valt att lägga nått i korgen och sen uppdaterar eller väljer "tillbaka" och "Framåt" får jag felmeddelandet:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Om jag vill att sidan ska synas med produkterna igen måste jag stänga fönstret för att starta ett nytt.
Jag har inte någon On Error Resume Next!
Det första problemet att sidan bara visar en post ur tabellen skapar kanske det andra problemet...
MickeSv: Kombinera Produkter och Varukorgen
Fått sidan att skriva ut alla dem poster som ingår i urvalet.
Tog bort variablerna och satte t ex <%=RS("Produkt")%> där jag hade <%=Produkter_Produkt")%> innan.
Varför blev det tokigt om man använder variabler för varje fält man hämtade ur databasen?
Det blev tokigt då man körde en Do Until...Loop över variablerna.
Edit: Testat vidare och upptäckt att det är när jag kör Sql_kundkorg som det blir fel då man lagt nått i kundkorgen och försöker uppdatera eller använda Tillbaka - Framåtknapparna.
Skippar jag den körningen fungerar dem sakerna.
Visst ska man kunna köra olika Sql-körningar?
Det handlar kanske om vad som händer Efter man lagt nått i korgen...
Edit2:
Gjort om inlägget i kundkorgen och nu går det att lägga in utan nått problem men det syns inget på sidan där jag har kombinerat prod/korg utan det syns bara på en sida där enbart kundkorgen finns, så det finns saker i korgen.
Ilägget i korgen sker på en sida som inte körs i webbläsaren med
Response.Status = "204 No Content"
och om jag uppdaterar sidan med Prod/korg efter att ha lagt in saker i korgen får jag felmeddelande:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Är där Ingen som har en idé...???
Micke