webForumDet fria alternativet

Rösta på bild

ASP

9 svar · 485 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan!

Kan någon förklara lite hur man ska bygga databasen och hur man skall tänka då man vill göra detta:

det ska vara 10bilder listade bredvid varandra, under varje bild ska det finnas en radioknapp, som man markerar och röstar på en bild och man skall bara kunna rösta 1 gång varje vecka...

hur skall databasen se ut mm.?

Medlem sedan juni 20003 076 inlägg
#2

jag hade nog börjat så här typ:

databas:
pictures
--pictureid 'räknare
--groupid 'gruppnummer, kan användas till att gruppera 10 och 10
--folderlink 'sökväg för bilderna till mappen
--regdate 'datum när bilderna lades in(är aldrig i vägen med ett datum)

votes
--voteid 'räknare
--pictureid 'int som joinar mot picture-tabellens pictureid
--number 'antal röster
--regdate 'datum för rösterna

detta går väl att justera åt olika håll men funkar nog att börja med.
spärra på en vecka åt gången är nog enklast att lösa med en kaka som dör efter en vecka.

Medlem sedan dec. 20002 526 inlägg
#3

Hej!

Hur databasen ska se ut vet du ju nu. Jag vet inte hur duktig du är på asp, men tips här om hur du gör koden.

Du listar helt enkelt upp de bilder du har i db:n genom en loop och vid varje bild (och i samma loop) har du radioknappar.

Sedan att man ska kunna rösta på en vecka kan du ju fixa med cookies...

Bara att skriva om det är något.

Medlem sedan dec. 20001 626 inlägg
#4

okej, låter inte så svårt, men en sak jag kom att tänka på en sak, vid skrivning till databasen, då jag lägger in en ny bild, hur ska jag gå till väga då, låt oss säga att jag har en admin sida, ska jag knappa in länken till bilden i ett textfält och låta den hamna i databas tabellen pictures och i kolumnen, folderlink?

Medlem sedan juni 20003 076 inlägg
#5

jag brukar göra precis så.
typ om bilden heter: fina_bilden.jpg så lägger du det namnet i databasen och resten av sökvägen till mappen skriver du i koden på asp-sidan.

obs! beroende på vad du använder för uploadkomponent så kan du nog plocka ut namnet automatiskt när du skickar upp bilden till mappen, så du behöver inte skriva bildnamnet för hand!

Medlem sedan juni 20003 076 inlägg
#6

ett exempel på uploadsida (här används dimac-upload)
en otestad variant men den borde funka!

<%
option explicit
server.scripttimeout = 1200

if request.querystring("id") = "2" then
dim w3u, picture, fileName, conn, strsql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open 'din koppling

SET w3u = Server.CreateObject("w3.upload")
SET picture = w3u.form("newfile")
fileName = fixa(picture.fileName)

If picture.contentType = "image/pjpeg" Then
picture.SaveToFile Server.MapPath("/pictures/upload/" & filename)
response.write "okidoki, jpg var det!"
ElseIf picture.contentType = "image/gif" Then
picture.SaveToFile Server.MapPath("/pictures/upload/" & filename)
response.write "okidoki, gif var det!"
else
response.write "fel filformat, gör genast om!"
end if

strsql = "INSERT INTO pictures (folderlink, regdate) VALUES ('" & filename & "', Now() )"
conn.Execute strsql,,128
Set w3u = nothing
conn.Close()
Set conn = Nothing 
end if
%>
<html>
<head>
<title>Uploadsida</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="<% =Request.ServerVariables("SCRIPT_NAME") & "?id=2"%>" enctype="multipart/form-data">  
<input type="file" name="newfile" size="30">
<input type="submit" value="Ladda upp filer" name="submit" class="button">
</form>
</body>
</html>
<%
function fixa(textstrang)
textstrang = Replace(textstrang, " ", "")
textstrang = Replace(textstrang, "Å", "A")
textstrang = Replace(textstrang, "å", "a")
textstrang = Replace(textstrang, "Ä", "A")
textstrang = Replace(textstrang, "ä", "a")
textstrang = Replace(textstrang, "Ö", "O")
textstrang = Replace(textstrang, "ö", "o")
fixa = textstrang
end function 
%>

https://www.dimac.net

Medlem sedan aug. 20003 575 inlägg
#7

Är det inte rätt klantigt att bygga upp databasen så?

Är det inte bättre att ha allt i en tabell?

t.ex.

ImageId
Votes
Points
uploaddate

GroupId behövs väl inte eftersom du kan ordna sådant i koden.

Votes och points använder man sig uytav en SQL-update sats =).

Medlem sedan mars 20014 214 inlägg
#8

Om du väljer att göra som nickemannen säger, så kan du fundera på att inte bara använda fälten votes och points för att addera i. Det kan då bli ganska fel om du vill dela när folk röstar olika. Det är då bättre att du lägger in lite splits ";" mellan varje röst i ett fält och utifrån dessa räknara ihop.

Medlem sedan dec. 20001 626 inlägg
#9

men vilken av de båda databas strukturerna är smidigast och bäst? hade tänkt att starta med uppbyggnaden av funktionen snart...

Medlem sedan juni 20003 076 inlägg
#10

vad som är bäst ska jag låta vara osagt!
jag hade i alla fall delat i två tabeller, käns om att det är bättre förberätt för om man vill bygga ut tabellerna i framtiden, + att man kan använda en redan uppladdad bild igen om den ska vara med i nästa röstning. ;)

men det hela är naturligtvis en smaksak!

267 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)