Avatar billede plato Juniormester
08. februar 2005 - 00:02 Der er 11 kommentarer og
1 løsning

Billedprojekt ASP

Hejsa NG.

Jeg tænker så det knager, hør her hvorfor:

Jeg har en masse billeder.
Disse billeder ligger i forskellige mapper.
Hver mappe har dens eget navn.
Alle billeder under hver mappe har navn efter mappen med 1, 2, 3, 4 osv. efter.

Jeg skal have lavet sådan:
Bruger klikker på "Galleri".
Brugeren kommer til SIDE 1 som lister alle navne på mapperne f.eks:

Fugle
Bjørne
Heste
Ford
Mercedes
Hund
Kaktus
osv.

Når brugeren så klikker på et navn skal SIDE 2 vise alle billeder under mappen. F.eks

Forside > Galleri > Mercedes

mercedes1.jpg
mercedes2.jpg
mercedes3.jpg
mercedes4.jpg
mercedes5.jpg
mercedes6.jpg

Hvordan laver jeg det bedst med en access database?


Jeg har tænkt på bare at sætte dem ind i en tabel der hedder "Galleri" f.eks:

navn              pic
Mercedes          mercedes1.jpg
Mercedes          mercedes2.jpg
Mercedes          mercedes3.jpg
Mercedes          mercedes4.jpg
Mercedes          mercedes5.jpg
Hund              hund1.jpg
Hund              hund2.jpg
Hund              hund3.jpg
Hund              hund4.jpg
Hund              hund5.jpg
osv.
Men det dur jo ikke. For når brugeren så klikker på Galleri  og SIDE 1 lister navnene på de forskellige kategorier, lister den jo f.eks Mercedes 5 gange hvor den kun skal gøre det én gang.

Nu håber jeg ikke det lyder alt for dumt, måske er det den sene tid, eller også tænker jeg forkert. Men nogle gode forslag til opbygningen af dette inden jeg går i gang? (helst uddybet)
Avatar billede jamiros Novice
08. februar 2005 - 00:30 #1
Lav 2 tabeller.
En med kategorierne og en med billeder.
Husk at begge tabeller skal indholde en ID...


ID  KATEGORI
1  Mercedes
2  Bjørne
3  Fugle
....

Og...
ID  KATEGORIID  BILLEDE
1  1            mercedes1.jpg
2  1            mercedes2.jpg
3  3            fugle1.jpg
...

Når der så bliver klikket på en kategori sender du kategoriens ID med til gallerisiden. Og laver et kald der henter alle billeder hvor ID = KATEGORIID
Avatar billede plato Juniormester
08. februar 2005 - 08:43 #2
Jeg kigger lidt på det, så vender jeg tilbage. :)
Avatar billede keysersoze Ekspert
08. februar 2005 - 11:28 #3
database er en løsning hvor det jamiros skriver er den rigtige løsning - umiddelbart ville jeg bare mene at det er et ufatteligt tungt arbejde at poste alle de data ind i databasen.

Vha FSO (filescriptingobject) kan du læse mapper og billeder og så slipper du helt og aldeles for en masse kedeligt db-arbejde.

Et eksempel;

http://www.html.dk/scripts/asp/00011/
Avatar billede plato Juniormester
08. februar 2005 - 17:01 #4
keysersoze:

Jeg har faktisk en kode med FSO. Det giver mig dog to problemer med denne kode:

1) Jeg kan ikke få den til at acceptere en Request.QueryString("id").
2) Jeg kan ikke få den til at vise 4 billeder på en linie og dernæst skifte til ny linie.
Avatar billede keysersoze Ekspert
08. februar 2005 - 17:17 #5
1) burde ikke være et problem
2) udelukkende et spørgsmål om korrekt tabel-opsætning med en if-sætninger der indsætter </tr><tr> ved hver 4. visning.
Avatar billede plato Juniormester
08. februar 2005 - 17:45 #6
Hvis jeg opretter et spm der hedder "FSO hjælp", kan jeg så bede dig pænt om at hjælpe mig med at rette den til?
Avatar billede jamiros Novice
08. februar 2005 - 17:48 #7
bare smid koden her...
Avatar billede plato Juniormester
08. februar 2005 - 17:50 #8
Kommer i tanke om, der skal jo på en eller anden måde kobles en database på, da mappe navne er f.eks "The_Sea_Inside", men titlen der skal vises på listen under galleri skal jo være "The Sea Inside". Det skal jo så komme fra et database kald, der også angiver i FSO hvilken mappe billederne ligger i.

id      mappe
1        mappe_1
2        mappe_2
osv.... Ikke?
Avatar billede plato Juniormester
08. februar 2005 - 17:52 #9
Koden er én jeg har fundet på nettet. Kan ikke huske hvor.

<%

' Dim rsFSO, strPath
' strPath = Server.MapPath("\sti\")
' Set rsFSO = kc_fsoFiles(strPath, "_")

Function kc_fsoFiles(theFolder, Exclude)
Dim rsFSO, objFSO, objFolder, File
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
 
  'create an ADODB.Recordset and call it rsFSO
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
 
  'Open the FSO object
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
  'go get the folder to output it's contents
  Set objFolder = objFSO.GetFolder(theFolder)
 
  'Now get rid of the objFSO since we're done with it.
  Set objFSO = Nothing
 
  'create the various rows of the recordset
  With rsFSO.Fields
    .Append "Name", adVarChar, 200
    .Append "Type", adVarChar, 200
    .Append "DateCreated", adDate
    .Append "DateLastAccessed", adDate
    .Append "DateLastModified", adDate
    .Append "Size", adInteger
    .Append "TotalFileCount", adInteger
  End With
  rsFSO.Open()
   
  'Now let's find all the files in the folder
  For Each File In objFolder.Files
   
    'hide any file that begins with the character to exclude
    If (Left(File.Name, 1)) <> Exclude Then
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      rsFSO("Type") = File.Type
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If

  Next
   
  'And finally, let's declare how we want the files
  'sorted on the page. In this example, we are sorting
  'by File Type in descending order,
  'then by Name in an ascending order.
  rsFSO.Sort = "Type DESC, Size ASC "

  'Now get out of the objFolder since we're done with it.
  Set objFolder = Nothing

  'now make sure we are at the beginning of the recordset
  'not necessarily needed, but let's do it just to be sure.
  rsFSO.MoveFirst()
  Set kc_fsoFiles = rsFSO
   
End Function

'Now let's call the function and open the recordset on the page
'the folder we will be displaying
Dim strFolder : strFolder = Server.MapPath("\newspics\")

'the actual recordset we will be creating with the kc_fsoFiles function
Dim rsFSO 'now let's call the function and open the recordset

'we will exclude all files beginning with a "_"
Set rsFSO = kc_fsoFiles(strFolder, "_")

'now we'll create a loop and start displaying the folder
'contents with our recordset. Of course, this is just a
'simple example and not very well formatted, i.e., not in
'a table, but it gets the point across on how you can
'ouput the recordset on the page.
  While Not rsFSO.EOF
%>
    <p><img src="../newspics/<%= rsFSO("Name").Value %>"> | <%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  'and let's move to the next record
    rsFso.MoveNext()
  Wend
 
  'finally, close out the recordset
  rsFSO.close()
  Set rsFSO = Nothing
%>
Avatar billede keysersoze Ekspert
08. februar 2005 - 21:52 #10
når du hiver navnene ud kan du replace _ med mellemrum og så slipper du stadig for databasen.

for at få billederne vist 4 af gangen er du nødt til at indsætte det i en tabel i stedet - i dit loop skriver du så bare <td>'billedkode</td> og for hver 4 gang indsætter du </tr><tr> og så får du det ønskede resultat.
Avatar billede plato Juniormester
08. februar 2005 - 22:09 #11
Kunne jeg få dig til at sætte det ind i koden?
Avatar billede plato Juniormester
28. november 2005 - 12:45 #12
Ikke mere relevant. Lukket.
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