webForumDet fria alternativet
Logga in / Bli medlem

Tal

ASP

17 svar · 241 visningar · startad av aleborg

Medlem sedan jan. 20013 341 inlägg
Trådstart#1

Jag har en tabell som heter Produkter, en av kolumnerna heter Pris(valuta, långt heltal).
Sedan har jag en tabell som heter Kunder som innehåller en kolumn med namnet Rabatt(valuta, procent)

Hur gör jag för att kunna visa Pris minus Rabatt, dvs om priset är 100 kr och den inloggade kunden har 30% rabatt, så ska priset visas 70 kr?

Medlem sedan dec. 19998 577 inlägg
#2

SQL = "Select (produkter.pris* Kunder.rabatt) AS tot_pris from produkter where kunder.kund_id="&ditt_kund_ID&" AND Produkt.produktID="&produktens_id

Något sånt... syntaxen är kanske inte helt korrekt, men principen borde stämma... Detta förutsatt att rabbaten är satt i decimal, inte procent...

Mvh, Vide

Medlem sedan dec. 19992 085 inlägg
#3

E det matten du inte kan eller?
slutpris=pris-pris*(100-rabatt)

Vet inte om jag misstolkade :(

Medlem sedan jan. 20013 341 inlägg
#4

Det här är för att visa priset för produkten på produktsidan, varje kund som loggar in har en specifik rabatt som gäller över alla produkter ex:

Ulla som jobbar för Företaget AB loggar in, Ulla har 30% rabatt på hela sortimentet. När Ulla tittar på dom olika produkterna står priset på varje produkt med rabatten redan avdragen.
Hur visar man då priset med rabatten redan avdragen?

Jo matten är det inget fel på(hade 5:a :) ) men asp-koden är det värre med :e

Medlem sedan dec. 19992 085 inlägg
#5

Aha.. Asså jag menade inget illa.. jag förstod bara inte vad det var som du inte kunde.. måste sova nu så jag fattar vad folk skriver ;)

Medlem sedan jan. 20013 341 inlägg
#6

Vide!
hur ska jag sedan få priset utskrivet?

eller har någon ett enklare sätt?

Medlem sedan dec. 19998 577 inlägg
#7

rs("tot_pris")

där rs är ditt recordset som du fick när du exekverade SQL-frågan...

Mvh, Vide

Medlem sedan jan. 20013 341 inlägg
#8

Är säkert helt ute och cyklar!
Provade på en sida och satte redan förutbestämda ID på objekten, dvs jag tog ID från en befintlig Produkt(Produkter.ID=74) och från en befintlig kund(Kunder.ID=2) för att få fram den kundens pris!

<%
Set rs =conn.Execute("Select (Produkter.Pris* Kunder.Rabatt) AS tot_pris  Where Produkter.ID=74 AND Kunder.ID=2")    
%>    
<%=rs("tot_pris")%>
<%
rs.close
conn.close
%>

Fel:
Error Type:
Microsoft JET Database Engine (0x80040E14)
SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.
/unisafe/test2.asp, line 115

Som sagt fortfarande nybörjare :)
Vad gör jag fel?

Medlem sedan dec. 19998 577 inlägg
#9

Du måste ju specifiera ifrån vilken tabell du skall hämta ifrån också:

... AS tot_pris [b]FROM din_tabell[/b] Where Produkter...
Medlem sedan jan. 20013 341 inlägg
#10

Provade det med!

<%
Set rs =conn.Execute("Select (Produkter.Pris* Kunder.Rabatt) AS tot_pris From Produkter Where ID=74 AND From Kunder Where ID=2")    
%>    
<%=rs("tot_pris")%>
<%
rs.close
conn.close
%>

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket 'ID=74 AND From Kunder Where ID=2'.
/unisafe/test2.asp, line 115

Medlem sedan dec. 200012 464 inlägg
#11
<%
Set rs =conn.Execute("Select (Produkter.Pris* Kunder.Rabatt) AS tot_pris From Produkter,kunder Where produkter.ID=74 and kunder.ID=2") 
%>
Medlem sedan jan. 20013 341 inlägg
#12

Tack nu funkade det :e

Medlem sedan jan. 20013 341 inlägg
#13

Nästan :(
Blev lite fel med if satserna :e

'#######Kolla om pris finns IF1
<%
If len(rs("Pris"))> 0 Then
%>
'#######Finns det skriv ut
<table width=100% border=0 cellspacing=0 cellpadding=0><td width=40% class=vit valign=top>Pris: </td><td width=60% class=vit><b>
'#######Kolla om personen är inloggad, IF2
<%
If len(Session("Username"))<=0 then
%>
'#######Ej inloggad skriv ut
<%=rs("Pris")%>
<% Else %>
'#######Om inloggad, kolla vilken produkt och kolla rabatt den inloggade har
<%
Set prrs =conn.Execute("Select (Produkter.Pris* Kunder.Rabatt) AS tot_pris From Produkter,Kunder Where Produkter.Artnr="&Request.QueryString("Artnr")&" AND Kunder.Username="&Session("Username")&"") 
%> 
'#######Skriv ut för den inloggade
<%=prrs("tot_pris")%>
'#######Stäng recset
<%
prrs.close
%>
'#######Avsluta IF2
<% End If %>
</b></td></table>
'#######Avsluta IF1
<% End If %>

Vet inte om man kan använa en if sats i en annan if sats?
Den ska först känna av om det finns nått pris i databasen, om det finns så ska den känna av om personen är inloggad eller bara gäst!

Fel
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket 'Produkter.Artnr=1003HT AND Kunder.Username=anderzzo'.
/unisafe/prod1.asp, line 201

Medlem sedan dec. 200012 464 inlägg
#14

Du kan nästla IF godtyckligt.
I och för sig kan det vara fel i IF (det har jag inte tittat efter) men
ett fel finns det i din select-sats

 
<%
Set prrs =conn.Execute("Select (Produkter.Pris* Kunder.Rabatt) AS tot_pris From Produkter,Kunder Where Produkter.Artnr="&Request.QueryString("Artnr")&" AND Kunder.Username='"&Session("Username")&"'") 
%>

Jag lade till apostrofer om sökvärdet.

Medlem sedan jan. 20013 341 inlägg
#15

Hade provat det med, men får fortfarande samma fel!

Men det ser inte fel ut vad jag kan se, men jag är ju ingen expert :)

Medlem sedan juni 200032 967 inlägg
#16

du bör också lägga apostrofer runt värdet för artikelnummer också, då det nog är av texttyp i tabellen.

mvh,

Medlem sedan jan. 20013 341 inlägg
#17

Ah där var felet, Tack!
Hade för mig att det var tal, men det va det ju inte :)

Medlem sedan juni 200032 967 inlägg
#18

gravey! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)