Gå til innhold

Lager et galleri script


Anbefalte innlegg

Har laget et før. Men det var en stund siden og det ble ikke så alt for bra. Så derfor setter jeg meg ned nå for å prøve på nytt.

 

Er ikke sikker på den beste løsningen for å lage et galleri, men jeg velger å ha alt i en tabell i databasen. (Bildene havner i en mappe på siden.)

 

sql tabell:

`id` INT NOT NULL AUTO_INCREMENT ,
`album` VARCHAR( 50 ) NOT NULL ,
`navn` VARCHAR( 50 ) NOT NULL ,
`tekst` TEXT NOT NULL ,
`thumburl` VARCHAR( 50 ) NOT NULL ,
`url` VARCHAR( 50 ) NOT NULL ,
`dato` VARCHAR( 25 ) NOT NULL ,
PRIMARY KEY ( `id` )

Det første som skal skje i galleriet er at de skal vise fram alle "albummene" jeg har tilgjengelig.

 

Her trenger jeg litt hjelpe, hvordan kan jeg hente ut alle felt i tabellen hvor feltet album er like.

 

Slik at dersom jeg har disse feltene:

'På hytta'
'På hytta'
'I skogen'
'På hytta'
'I skogen'

Blir til:

'På hytta'
'I skogen'

Dermed vet scriptet at dette er de 2 albummene jeg har så langt.

Endret av Mellet
Lenke til kommentar
Videoannonse
Annonse

Høres ut som en fin ide det :)

 

Men jeg ville kanskje ha tatt med størrelsen på bildene i tabelen også, slik at når du skriver ut html koden så kan du ta med det også.. Hater sider som vokser etter hvert som bildene bli lastet ned :)

 

Ser at du har skrevet:

`thumburl` VARCHAR( 50 ) NOT NULL ,
`url` VARCHAR( 50 ) NOT NULL ,

 

Har du tenkt til å legge inn hele url her? Dette er kanskje ikke så smart, tenk hva som skjer hvis du engang flytter litt på mappene dine eller får ny domene.

Jeg ville ha satt selve path/url i selve scriptet og bare lagret filnavnet i databasen.

Du trenger igrunn bare et felt også: "filnavn". Du kan enten legge filene i forskjellige mapper "thumb" og "images" eller sette en "th_" forand filnavnet og legge alle i samme mappe.

 

 

En annen ting er at jeg forstår ikke hvorfor dere bruker varchar() på datafelt, ser mange som gjør dette. Selv ville jeg valgt datetime eller date. Ved lagring setter jeg bare inne now() og når jeg heter ut bruker jeg date_format() for å få ut slik som jeg vil ha det.

 

 

SELECT * FROM <tabelnavn> GROUP BY album ORDER BY album

Denne vil bare gi deg en ut for hver album. Jeg ville også ha laget en egen tabel for album navn, men det er nå meg :)

 

`album_id` INT NOT NULL AUTO_INCREMENT ,
`navn` VARCHAR( 50 ) NOT NULL ,
`beskrivelse` TEXT NOT NULL 

 

MEn jeg liker å ha flere tabeler da :)

 

Lykke til videre.

Endret av trondes
Lenke til kommentar
Men jeg ville kanskje ha tatt med størrelsen på bildene i tabelen også, slik at når du skriver ut html koden så kan du ta med det også.

Ja, tenkte på det i etterkant. Skal legge det til også.

 

Har du tenkt til å legge inn hele url her?

Nei, har bare tenkt å legge filnavn (bildenavn.jpg) i databasen.

 

En annen ting er at jeg forstår ikke hvorfor dere bruker varchar() på datofelt, ser mange som gjør dette. Selv ville jeg valgt datetime eller date. Ved lagring setter jeg bare inne now() og når jeg heter ut bruker jeg date_format() for å få ut slik som jeg vil ha det.

Har prøvd meg med det bruke datetime men får ikke helt til :p

 

 

SELECT * FROM <tabelnavn> GROUP BY album ORDER BY album

Denne vil bare gi deg en ut for hver album. Jeg ville også ha laget en egen tabel for album navn, men det er nå meg :)

Slik var det ja. Tekte også på å lage en egen tabell for album, så jeg kan legge til en beskrivelse på albummet ja.

Lenke til kommentar

tbl.bilder

 `id` INT(5) NOT NULL AUTO_INCREMENT ,
 `albumid` INT( 5 ) NOT NULL ,
 `bildetittel` CHAR( 50 ) NOT NULL ,
 `bildetekst` TEXT NOT NULL ,
 `thumbimg` TINYBLOB NOT NULL ,
 `fullimg` MEDIUMBLOB NOT NULL ,
 `dato` INT( 10 ) NOT NULL ,
 PRIMARY KEY ( `id` )

tbl.galleri

 `id` INT(5) NOT NULL AUTO_INCREMENT ,
 `galleritittel` CHAR( 50 ) NOT NULL ,
 PRIMARY KEY ( `id` )

$sql=mysql_query("SELECT g.id gid,g.galleritittel,b.* FROM galleri g, bilder b
 WHERE b.albumid=a.id ORDER BY a.tittel");

while($row=mysql_fetch_assoc($sql)){}

 

albumid referer til galleri

BLOB = binary, du lagrer bildet i databasen (hvis ønskelig).

Du bruker convert (imagemagick) for resizing/cropping av bildet.

$row["dato"] = 'dato: '.date("d.m.Y H:i:s", $row["dato"]);

Endret av sfenne
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...