Avatar billede brave Nybegynder
06. marts 2004 - 00:50 Der er 17 kommentarer og
1 løsning

Nyt Array ud fra en kollonne i en database

Hejsa

Jeg har en database som har en kollonne med en række billeder. Hvordan kan jeg lave et nyt array udfra de billeder der ligger i databasen i kollonnen, så array kommer til at se sådan ud.

<script language="javascript">
<!--
    var Page_Pics =  new Array("Billed1.gif", "Billed2.gif", "Billede3.gif", "Billed4.gif");
        // -->
</script>
Avatar billede thesurfer Nybegynder
06. marts 2004 - 14:04 #1
Jeg går ud fra at du kan finde ud af, at oprette forbindelse til en database, og hente data ud af den..

Eksempel:

dim arr
arr = ""
do while not rs.eof

arr = arr & """" & rs("billeder") & ""","

loop

arr = left(arr, len(arr) - 1)

response.write "var Page_Pics =  new Array(" & arr & ")"
Avatar billede thesurfer Nybegynder
06. marts 2004 - 14:07 #2
Hvis du ikke kan lide alle de der """", kan du bruge:
arr = arr & chr(34) & rs("billeder") & chr(34) & ","
Avatar billede thesurfer Nybegynder
06. marts 2004 - 14:08 #3
Og rs("billeder") skal jo rettes til feltets rigtige navn :)
Avatar billede brave Nybegynder
07. marts 2004 - 11:32 #4
Nu har prøvet det som du har skrevet men det ser ikke ud til at virker som jeg gerne vil, så jeg gør det sikkert forkert.

Kan du ikke prøve at lave et eksempel med database udtræk.
Avatar billede thesurfer Nybegynder
07. marts 2004 - 16:03 #5
Smid lige et link til din side..
Avatar billede thesurfer Nybegynder
07. marts 2004 - 16:06 #6
dammit .. havede lavet en fejl.. glemte rs.movenext før loop :)  (meget vigtigt.. ellers sider den fast)

..laver lige et eksempel..
Avatar billede thesurfer Nybegynder
07. marts 2004 - 16:14 #7
Denne kode er ikke testet, men burde virke.. skulle du få fejl, så skrive hele fejlmeddelelsen, linie nummer der er fejl i, og selve linie der er fejl i.

Koden:

<%
Option Explicit
' "Option Explicit" skal ALTID være den første linie i asp filen! Dvs, ingen asp/html/javascript kode før den.
' bør man altid bruge, da man så undgår stavefejl, da man så skal definere ALLE variablerne

Response.Buffer = True
' True = hele siden dannes før den sendes til browseren
' False = data sendes til browsere efterhånden som de dannes
%>

<html>
<head>
<title>min side med nogle billeder</title>
</head>
<body>
<script type="text/JavaScript">
<!--

<%
' definering af de variabler vi skal bruge:
dim Conn, DNS, strSQL, rs
dim arr
arr = ""

' opret forbindelse til database, og åben forbindelsen:
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb") ' denne database ligger i samme mappe som asp filen
Conn.Open DSN

strSQL = "Select * from TABELNAVN" ' ret "TABELNAVN" til navnet på tabellen

Set rs = Conn.Execute(strSQL)

Do While Not rs.EOF
  arr = arr & """" & rs("billeder") & """," ' ret "billeder" til navnet på feltet med navnene på billederne
  rs.MoveNext
Loop

Conn.Close
Set Conn = Nothing

arr = left(arr, len(arr) - 1)
response.write "var Page_Pics =  new Array(" & arr & ")"
%>

//-->
</script>
Avatar billede thesurfer Nybegynder
07. marts 2004 - 16:15 #8
Hvis du vil lære at arbejde med ASP (og databaser) se: http://html.dk/tutorials/asp/
Databaser: lektion 17-22
Avatar billede brave Nybegynder
08. marts 2004 - 13:55 #9
Hejsa

Det virker fint, men der er dog et problem, den laver et komma når den har udtrukket sidste billede. hvordan kan jeg forhindre det.

Det kommer til at se sådan ud på siden, hvor jeg så gerne vil have at det sidste som kommer bagved billede3.jpg kommer væk. :

<script language="javascript">
<!--

var Page_Pics =  new Array("nopicture.jpg", "billede1.jpg", "billede2.jpg", "billede3.jpg",);

//-->
</script>
Avatar billede thesurfer Nybegynder
08. marts 2004 - 16:20 #10
Har du husket denne linie?:
arr = left(arr, len(arr) - 1)

Hvis ja, lav "1" om til "2":
arr = left(arr, len(arr) - 2)
Avatar billede thesurfer Nybegynder
08. marts 2004 - 16:20 #11
Svar.
Avatar billede brave Nybegynder
08. marts 2004 - 22:18 #12
Alt virker som det skal, tusind tak for hjælpen
Avatar billede thesurfer Nybegynder
09. marts 2004 - 16:52 #13
Det var så lidt :)
Avatar billede Laitings Nybegynder
28. maj 2004 - 10:43 #14
Nu går der ged i den!?

Jeg vil gerne have sat mit nye array tilbage ind i databasen, hvorfor kan jeg ikke gøre således!?:

  ReDim Preserve arrFavorit(ubound(arrFavorit)+1)
  arrFavorit(ubound(arrFavorit)) = Request("favID")
 
UpdateSQL = "Update Favoritliste Set FavoritProfiler='" & arrFavorit & "' Where FavoritBrugerID=" & Session("ID") & ""
myConn.Execute(UpdateSQL)

Jeg får en data type mismatch...er arrFavorit ikke et array af værdier: ex.: 11,34,45?

Håber I kan hjælpe!?
Avatar billede thesurfer Nybegynder
07. juni 2004 - 19:06 #15
Er det kun den sidste værdi, der skal indsættes i databasen?
Avatar billede thesurfer Nybegynder
26. juli 2004 - 16:56 #16
ang "Jeg får en data type mismatch...er arrFavorit ikke et array af værdier: ex.: 11,34,45?":

Nej, egentligt ikke :-)

Dit array består af følgende:
11
34
45
osv

Dvs, det er ikke 1 linie, men mange linier..

hvis du vil smide hele arrayet ind i 1 felt, kan du f.eks. bruge:

dim tmp
tmp = ""

for i = 0 to arrFavorit
  tmp = tmp & arrFavorit & ","
next

tmp = left(tmp, len(tmp) - 1) ' denne linie fjerner det sidste ","

UpdateSQL = "Update Favoritliste Set FavoritProfiler='" & tmp & "' Where FavoritBrugerID=" & Session("ID") & ""
myConn.Execute(UpdateSQL)
Avatar billede thesurfer Nybegynder
26. juli 2004 - 16:57 #17
rettelse (der skulle stå ubound(arrFavorit) ):

dim tmp
tmp = ""

for i = 0 to ubound(arrFavorit)
  tmp = tmp & arrFavorit & ","
next

tmp = left(tmp, len(tmp) - 1) ' denne linie fjerner det sidste ","

UpdateSQL = "Update Favoritliste Set FavoritProfiler='" & tmp & "' Where FavoritBrugerID=" & Session("ID") & ""
myConn.Execute(UpdateSQL)
Avatar billede thesurfer Nybegynder
26. juli 2004 - 16:58 #18
endnu en rettelse (der skulle stå arrFavorit(i) ):

for i = 0 to ubound(arrFavorit)
  tmp = tmp & arrFavorit(i) & ","
next
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester