webForumDet fria alternativet

Räkna om Bytes till Kb?

ASP

6 svar · 606 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Det är så att jag sparar in bilders ID nummer och filstorlek i min MySQL databas "problemet" är att filstorleken sparas i Bytes t.ex. 33378, kan man på något sätt göra om så detta står i kB istället t.ex. 33,3kB?

Medlem sedan juni 20006 022 inlägg
#2

När du skriver ut det så kan du ju dela med 1024.

Medlem sedan nov. 20031 018 inlägg
#3

ah det är ju sant men hur förhindrar jag att summan inte blir 32,595703125?

Medlem sedan juni 20006 022 inlägg
#4

Då kan du använda Round.

t.ex. Round((StolekIBytes / 1024), 1)

Då får du en decimal.

Medlem sedan nov. 20031 018 inlägg
#5

Finns det något smartare sätt att göra det på än detta nedan?

<%
Set Rs = Connect.Execute("SELECT COUNT(id) AS Antal FROM bild Where memb = '"& id &"'")
response.write Rs7("Antal") &" bilder,&nbsp;"
Rs.Close : Set Rs = Nothing

Set Rs = Connect.Execute("SELECT SUM(storlek) AS Summan FROM bild WHERE memb='"& id &"'")

Response.write Round((Rs("Summan") / 1024), 1) &"kB totalt"
Rs.Close : Set Rs=Nothing
%>
Medlem sedan nov. 20031 018 inlägg
#6

Ingen?

Medlem sedan juli 200280 inlägg
#7

Du ska kunna slå ihop det till en enda MySQL-fråga som kontrollerar både antal och storlek.

Sen kan du ju överväga att inte lagra i databasen exakt hur många byte bilden är på, utan bara lagra antalet kilobyte. Servern behöver då bara omvandla byte-kilobyte en gång per bild, inte varje gång någon är inne på en sida.

<%
Set Rs = Connect.Execute("SELECT COUNT(id) AS Antal, SUM(storlek) AS Summan FROM bild Where memb = '"& id &"'")
response.write Rs("Antal") &" bilder, "
Response.write Round((Rs("Summan") / 1024), 1) &"kB totalt"
Rs.Close : Set Rs=Nothing
%>
383 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
249 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
247 ms — ändringar (db)