13. januar 2008 - 20:24Der er
9 kommentarer og 1 løsning
Løkke inden i løkke
Er der en af jer, der hurtigt kan se fejlen i nedenstående? Jeg prøver at lave en menu ud fra en database, hvor nogle af elementerne er undermenuer til de andre.
SQL = "SELECT id, navn FROM kategori WHERE undermenu = 0" SET objMenu = Conn.Execute(SQL) Do Response.Write ("<a class=""menu-overskrift0"" href=""dims-kategori.asp?id=" & objMenu("id") & "">"" & objMenu("navn") & "</a><br><br>")
SQL = "SELECT id, navn, undermenu FROM kategori WHERE undermenu = " & objMenu("id") SET objUnderMenu = Conn.Execute(SQL) If Not (objUnderMenu.BOF Or objUnderMenu.EOF) Then do 'Do While Not objUnderMenu.EOF Response.write ("<a class=""menu-overskrift1"" href=""dims-kategori.asp?id=" & objMenu("id") & """>" & objMenu("navn") & "</a><br>") objUnderMenu.MoveNext Loop While Not objUnderMenu.EOF
Fejl? Hvad er problemet? Du få nok hurtigere svar, hvis du fortæller lidt mere.
Men kan det være fodi du aldrig egentlig bruger objUnderMenu til noget. Ser ud som om du ukritisk har kopieret en linie uden at ændre det nødvendige i den.
Nu har du så lige skrevet password til din database på nettet - det må du overveje...
Når nu en person ser din side, så skal den der menu dannes - hver gang - adskillige database-kald. Det kan så være i orden, når der ikke er ret meget trafik, men det er en rød klud for øjnene for os, der arbejder med rigtig mange brugere. Den samme beregning hver eneste gang, med mindre der er ændringer i menuen. Det er der nok ikke så tit.
I den sammenhæng ser jeg hellere et PHP-script, der laver en fil til brug for include, og som så kun kaldes når du ved menuen ændrer sig.
(...bare et lille pip, fra een der til daglig sidder og tæller millisekunder...)
Min kommentar kl. 22:46:14 gik på, at jeg var kommet til at offentliggøre password/koden. Det gør jeg i snit hver andet år her på exp ;)
Det første år, bliver der formegentlig en hel del ændringer til menuen og ikke så mange besøgende. Når der så er ved at falde ro på strukturen og kommer lidt flere besøgende, skal jeg nok overveje at lave den statisk.
Det med en side, der generere menuen når den bliver kaldt, lyder meget smart. Jeg vil lige undersøge, om det er noget jeg kan finde ud af i ASP.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.