webForumDet fria alternativet

Hur ska formeln samt DB se ut?

ASP

12 svar · 445 visningar · startad av M.Cheraghi

Medlem sedan juli 20015 107 inlägg
Frågan#1

Ska skapa en röstningmojäng för ett fotoalbum.
Då undrar jag hur ska jag strukturera upp det? Man ska kunna rösta 1-10 poäng. Sedan ska snittet presenteras. Men hur ända in i norrland ska den matematiska formeln, samt databasen se ut?

Jag har hjärnsläpp.

Medlem sedan dec. 19998 577 inlägg
#2

summan av alla 1-10 delat med antalet röstningar ger dig ett snitt.

Datatabellen bör ha id för vilken röstning, vilket alternativ som valdes, vilken användare (om det skall användas) och vilket datum.

En annan tabell beskriver omröstningen (id, text, date).

En sista tabell beskriver alternativen (id, röstningsid, text).

Sedan är det bara att koppla ihop dessa. ;)

Medlem sedan juli 20015 107 inlägg
#3

Vide skrev:

summan av alla 1-10 delat med antalet röstningar ger dig ett snitt.

Datatabellen bör ha id för vilken röstning, vilket alternativ som valdes, vilken användare (om det skall användas) och vilket datum.

En annan tabell beskriver omröstningen (id, text, date).

En sista tabell beskriver alternativen (id, röstningsid, text).

Sedan är det bara att koppla ihop dessa. ;)

Ahh, det verkar låta bra :)
Ska knåpa på det och jag återkommer om jag kör fast.
Tillsvidare är svaret på mina frågor besvarade, där för accepteras svaret (tillsvidare)

Medlem sedan juli 20015 107 inlägg
#4

nu har jag kommit en bit på vägen.
Och det verkar fungera :e
Men dock så är jag lite osäker angående en sak.
Hur ska man gå tillväga för att förhindra att folk röstar på samma bild samtidigt och att resultatet blir felaktigt om Ni förstår vad jag menar :)

<!--#include file="sessioncontrol.asp" -->
<!--#include file="databaseconnection.asp" -->
<%
strUsername  = session("username")
strVoteID    = request.querystring("ID")
strVoteValue = request.form("vote")

strSQL = "SELECT * FROM tblPhotoalbum WHERE ID = '"& strVoteID &"'"
SET RS = Conn.execute(strSQL)

totalvote = (clng(RS("totalvote")) + clng(1))
vote_value = (clng(RS("vote_value")) + clng(strVoteValue))

strSQL = "UPDATE tblPhotoalbum SET totalvote = '"& totalvote &"' , vote_value = '" & vote_value & "' WHERE ID = '"& strVoteID &"'"
Conn.execute(strSQL)

strSQL = "INSERT INTO tblPhotoalbum_vote (photoID, username) VALUES ('"& strVoteID &"' , '"& strUsername &"')"
Conn.execute(strSQL)

RS.close
SET RS = nothing
Conn.close
SET Conn = nothing
%>

10-4 over and out

Medlem sedan juni 200032 967 inlägg
#5

Du behöver inte hämta värdena först, utan du kan göra uppdateringen direkt i UPDATE-frågan.

Får man fråga varför du har apostrofer runt talvärden som de som lagras i ID, totalvote, vote_value och photoID?

Medlem sedan juli 20015 107 inlägg
#6

@nders skrev:

Du behöver inte hämta värdena först, utan du kan göra uppdateringen direkt i UPDATE-frågan.

Får man fråga varför du har apostrofer runt talvärden som de som lagras i ID, totalvote, vote_value och photoID?

Varför? varför inte? det fungerar :e
Hmm, mjo nu när jag kolalr efter så kanske jag kan köra i updaten, men då är det
tblPhotoalbum.KOLUMNNAMN style på frågan? :r
eller är jag bakom flötet :) tänkte ta reda på så mkt info just nu så jag vet vad jag ska dyka på imorgon :e

Medlem sedan juni 200032 967 inlägg
#7

Gör om, gör rätt. :-)

Jag hoppas att det inte innebär att fälten är av strängtyp, utan att det bara är du som gör fel när du kodar? ;)

mvh

Medlem sedan juli 20015 107 inlägg
#8

@nders skrev:

Gör om, gör rätt. :-)

Jag hoppas att det inte innebär att fälten är av strängtyp, utan att det bara är du som gör fel när du kodar? ;)

mvh

Båda fälten är INT, och jag kör atpostrof, och det fungerar, vad begär du utav mig :e

Medlem sedan juni 200032 967 inlägg
#9

vad begär du utav mig

Jag begär att du inte ska använda apostrofer runt talvärden. ;)

Och angående uträkningen i SQL-frågan kan du göra något sånt här:

UPDATE tbl SET fld = fld + " & clng(numerisktvärde) & " WHERE fld2 = 4711
Medlem sedan juli 20015 107 inlägg
#10

@nders skrev:

vad begär du utav mig

Jag begär att du inte ska använda apostrofer runt talvärden. ;)

Och angående uträkningen i SQL-frågan kan du göra något sånt här:

UPDATE tbl SET fld = fld + " & clng(numerisktvärde) & " WHERE fld2 = 4711

Okej ska spåna på SQL'en, men varför inte atpotrofer? ;) Det verkar ju fungera alldeles utmärkt juhe :e

Medlem sedan juni 200032 967 inlägg
#11

Runt värden som passar fält av strängtyp (text/varchar) eller datumtyp har man apostrofer. Runt värden som lagras i talfält har man inga literaler. Basta.

När man är ute och kör bil kör man väl inte på vänster sida av vägen bara för att man tycker om att vara nära trottoarkanten? Inte backar man genom cirkulationsplatser, 'eftersom det går'?

Om man gör på det sätt som det är tänkt att göra, dvs det korrekta sättet, då sparar man sig en himla massa överraskningar framöver.

mvh

Medlem sedan juli 20015 107 inlägg
#12

@nders skrev:

Runt värden som passar fält av strängtyp (text/varchar) eller datumtyp har man apostrofer. Runt värden som lagras i talfält har man inga literaler. Basta.

När man är ute och kör bil kör man väl inte på vänster sida av vägen bara för att man tycker om att vara nära trottoarkanten? Inte backar man genom cirkulationsplatser, 'eftersom det går'?

Om man gör på det sätt som det är tänkt att göra, dvs det korrekta sättet, då sparar man sig en himla massa överraskningar framöver.

mvh

Backa i cirkulationsplatser är hardcore :e
Men jag förstår vad du menar.
Ska ta en titt över det hela när jag får titt över :)
Danke schoen!

Medlem sedan juni 200032 967 inlägg
#13

Bitte schön! :)

265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)