30. januar 2004 - 11:20Der er
51 kommentarer og 2 løsninger
Randomize kommer med fejl
jeg har nedenstående kode, men den kommer nogle gange med fejl. hvis den ikke finder en record - kan nogen hjælpe mig med at rette koden til + en lille forklaring :)
<% Set Taeller = Server.CreateObject("ADODB.Recordset") Taeller.ActiveConnection = MM_scandlines_STRING
Taeller.Open "SELECT * FROM Vin WHERE Salgstype = 'Best Buy' AND Aktiv_Dansk = 'Y'", MM_scandlines_STRING, 1, 3 tael = 0 while not Taeller.eof tael = tael + 1 Taeller.movenext wend
Taeller.Close() Set Taeller = Nothing
Set rsRandom = Server.CreateObject("ADODB.Recordset") rsRandom.ActiveConnection = MM_scandlines_STRING rsRandom.Open "SELECT * FROM Vin WHERE Salgstype = 'Best Buy' AND Aktiv_Dansk = 'Y'", MM_scandlines_STRING, 1, 3 If rsRandom.BOF or rsRandom.EOF Then Response.write "Ingen poster" else randomize randomNr = CInt(rnd() * tael) rsRandom.Move(randomNr) end if %>
dette virker ikke: <% Set rsRandom = Server.CreateObject("ADODB.Recordset") rsRandom.Open "SELECT * FROM Vin WHERE Salgstype = 'Best Buy' AND Aktiv_Dansk = 'Y'", MM_scandlines_STRING, 1, 3 If rsRandom.BOF or rsRandom.EOF Then Response.write "Ingen poster" else randomize randomNr = Int(rsRandom.RecordCount * rnd()) rsRandom.Move(randomNr) end if %>
det skal være en helt ny/anden random funktion. hver gang jeg prøver at køre den side er der ingen fil på sitet der virker. underligt - men det passer...
Så der derfor det ikke virker, recordCount vil være 0 når man bruger mySQL.. Prøv:
Set rsRandom = Server.CreateObject("ADODB.Recordset") rsRandom.ActiveConnection = MM_scandlines_STRING rsRandom.Open "SELECT * FROM Vin WHERE Salgstype = 'Best Buy' AND Aktiv_Dansk = 'Y' ORDER BY RAND() limit 1", MM_scandlines_STRING, 1, 3 If rsRandom.BOF Then Response.write "Ingen poster" else response.write rsRandom("kolonne_her") end if
kan man i en sql lave en løkke så de eksempelvis ud fra en WHERE ganger pris med antal så man kan beregne en totalpris ? - et lille tillægsspørgsmål som ikke kræver svar
1. Nævnte RANDom op til flere gange 2. Nævnte LIMIT 1 Var jo det svaret endte med?
pelskee: Husk evt. lige LIMIT 1 ... som skrevet tidl. Dermed får du kun én record ud, i stedet for flere (og ikke belaster unødigt)... Men med mindre at du selvfølgelig gerne vil have flere ud, så i orden :)
eagle - det var en jeg skulle bruge til noget andet: rsTotal.Source = "SELECT (pris*antal) as totalpris FROM Indkoebskurv WHERE SessionID = " + Replace(rsTotal__MMColParam, "'", "''") + " GROUP BY Pris, Overskrift"
ok, men det er det samme, når du bruge GROUP BY skal de kolonner også med i select delen
rsTotal.Source = "SELECT (pris*antal) as totalpris, pris, Overskrift FROM Indkoebskurv WHERE SessionID = " + Replace(rsTotal__MMColParam, "'", "''") + " GROUP BY Pris, Overskrift"
Eller rettere... du kan prøve at lege lidt med det.... Ved ikke lige umildbart præcis hvilke og hvor meget du får listet ud... Men kunne evt. gøres vha. nogle af de andre funktioner også
http://border-wines.dk.virker.nu/final.asp - jeg ville bruge den til at tælle sammen hvor meget en bruger har købt for. den tager det første men hvis du klikker ind under en 'Læs mere' og ligger 6 stk i kurven så tæller den ikke sammen... strange
Hov... ved ikke om du har bemærket det - hvis du ændre tallet, og trykker opdater, bliver tallet ændret tilbage?! Ved ikke om du var nået så langt - men ville lige nævne det, i tilfælde af at du ikke havde bemærket det.
Kan ikke huske om den vil acceptere i Access, når du prøver at sende flere UPDATE's af gangen... men ellers må du blot nøjes med én af gangen... desværre.
Hov... hvad blev egentlig det endelige resultat af "total" delen? rsTotal.Source = "SELECT sum(pris*antal) as totalpris FROM Indkoebskurv WHERE SessionID = " + Replace(rsTotal__MMColParam, "'", "''") bør være: rsTotal.Source = "SELECT sum(pris*antal) as totalpris FROM Indkoebskurv WHERE SessionID = " & Replace(rsTotal__MMColParam, "'", "''")
hvis det skal gå rigtigt til (når det er i ASP)... :) Blot lige en sidebemærkning ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.