/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Opdeling i løkker
Fra : crha
Vist : 423 gange
30 point
Dato : 30-07-02 15:39

Hejsa

Hvis nu man laver en løkke der henter alle records fra en database, hvordan kan man så gøre at f.eks. det første record har teksten farven blå, det sidste record for farven blå og alle mellemliggende records har måske farven hvid?

Nogle der kan hjælpe mig :D

 
 
Kommentar
Fra : crha


Dato : 30-07-02 17:21

Nu har jeg f.eks. denne kode:

<%
strSQL = "Select * From Nyheder order by ID Desc"
Set rs = Conn.Execute(strSQL)
%>
<center>
<% Do until rs.eof %>
<table width="92%" border="1" bordercolor="#cfcfbb">
<tr>
<td bgcolor="#cfcfbb"><center><font class="option" color="#000000"><b><%=rs("Overskrift")>
</b></font></center></td>
</tr>
<tr>
<td><br><%=rs("Indhold")%><br></td>
</tr>
<tr>
<td><%=rs("Dato")%></td>
</tr>
</table>
<br><br>
<%
rs.movenext
loop
rs.close
set rs = nothing
%>

Hvis ny der er 23 nyheder i databasen, hvordan for jeg så den første til at være blå, de næste to rød og den sidste gul, og alle mellemliggende kan være hvide.

Grunden til jeg bruger det med farverne er for at forklare hvordan det skal opdales.

Kommentar
Fra : trixster


Dato : 31-07-02 15:20

Hejsa

En mulighed var at smide en farve code ind i databasen så du angiver hvilken farve hvert enkelt ID skal have.

Jeg har dog ikke prøvet dette i praktisk men det var nok sådane jeg ville løse dette problem.

Jeg kigger lige lidt rundt og ser om jeg kan finde en anden måde.

Mvh
Trix

Kommentar
Fra : Gensmann


Dato : 31-07-02 16:00

Hvis det drejer sig om at opsplitte posterne baseret på den position de får i udtrækket så forstår jeg ikke hvorfor du afviser mit svar?

Det jeg netop skriver er at du skal indbygge en counter i din lække og ud fra den counter kan du definere at når counteren er lig med x så skal der gøres x - en ganske normal if then sætning?

Mvh
Oscar Eg Gensmann


Kommentar
Fra : crha


Dato : 03-08-02 15:28

Hej

Hvis man tilføjer Order by Points kommer records frem og så ville det ikke være så godt hvis nummer 10 er den farve der skal være øverst og heller ikke godt med If then fordi det er jo ikke sikkert at der lige er 14 på den øverste hver gang?

Kommentar
Fra : Gensmann


Dato : 04-08-02 09:43

crha>

Øhh hvis svar er det lige du kommenterer?

En if then konstruktion er ikke nødvendigvis afhængig af antallet af rows der sendes ud? Det kræver bare at dit udtryk er lidt mere matematisk kompleks end if = 14 then, hvis du tæller antallet af rækker op i en variabel der f.eks hedder rowcount så kan du lave en if counter = rowcount then og du vil altid fange den sidste række uanset om der er fjorten eller halvtreds.

Hvis du vil farve den første halvdel brun så laver du en if counter < rowcount/2 then. Det er bare et spørgsmål om matematiske udtryk og regnemåder.

Med Venlig Hilsen
Oscar Eg Gensmann

Kommentar
Fra : crha


Dato : 04-08-02 11:36

Ahh, den metode har jeg aldrig hørt om før, men hvordan laver man den så det record med flest point bliver grøn og den med færrest bliver rød?
Skal man så skrive If counter < rowcount/Antal?

Kommentar
Fra : KasperK


Dato : 08-08-02 19:31

Prøv først at tælle antallet af records med denne sqlsætning:
sql = "SELECT news, COUNT(id) as antal FROM NewsDB"

nu indeholder rs("antal") måske tallet 26

Så laver du din betingelse:

<%
i = 1

rs.MoveFirst
While not rs.eof

if i = 1 then
color = "blue"
elseif i = rs("nyheder")
color = "red"
else
color = "white"
end if

response.write "<font color=""" & color & """>" & rs("news") & "</font><br>"

i = i + 1

rs.MoveNext
wend
%>

og så skulle den være der.

/Kasper K

Kommentar
Fra : crha


Dato : 08-08-02 20:23

Tak for kommentaren, men jeg har lige nogle spørgsmål før jeg tror jeg fatter den:

??? betyder at der ved jeg ikke hvad jeg selv skal skrive:
sql = "SELECT ???, COUNT(???) as antal FROM NewsDB"


Kommentar
Fra : KasperK


Dato : 08-08-02 22:18

Du har oprindeligt lavet en der hed noget i stil med:
sql = "Select * From Nyheder order by ID Desc"
Det at du sætter en stjerne (*) betyder at du henter alle felter i din database.

Jeg gør det at jeg selv fortæller hvilket felter den skal hente [news, COUNT(id) as antal].
Jeg kan så se at du i forvejen sorterer på et felt der hedder id, så derfor henter jeg felterne news(burde så hedde nyheder) og id, som jeg så tæller antallet af og herefter kalder med parametren antal.

sql = "SELECT [et_felt_i_databasen], COUNT([et_andet_felt_i_databasen]) as antal FROM Nyheder ORDER BY ID DESC"

eller som den vil se ud når den er færdig:
sql = "SELECT Nyheder, COUNT(id) as antal FROM Nyheder ORDER BY ID DESC"

Håber det kan bruges.

/Kasper K

Kommentar
Fra : crha


Dato : 09-08-02 15:09

Kan man godt nøjes med det?
Kan man godt bruge dette her:?

set rs = Conn.Execute("select nyhede, count(nyhedid) as antal from Nyheder") ???

Kommentar
Fra : KasperK


Dato : 09-08-02 17:09

Mit første spørgsmål må være: Har du prøvet??

Men umiddelbart kan jeg ikke se noget i vejen for det.
Men du får vel brug for at sortere efter et eller andet felt??

Mvh
Kasper K

Kommentar
Fra : crha


Dato : 09-08-02 18:36

:D
Sorry, nej jeg har ikke prøvet og kan heller ikke komme til det de næste 2 dage, så ind til videre siger jeg mange tak og håber på at det virker :)

Kommentar
Fra : KasperK


Dato : 22-08-02 09:44

Virkede det?

Kasper K

Kommentar
Fra : crha


Dato : 22-08-02 11:00

Ved det ikke endnu :D

Men jeg har ikke fået det til at lykkedes endnu

Du har følgende muligheder
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408041
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste