4 – Hvordan lage et album i PHP



4 – Hvordan lage et album i PHP

av Ole Petter den 28. juli 2019

Sist oppdatert: 15 februar, 2020 kl 17:11

I forrige innlegg https://smorasstats.com/PORTFOLIO/nyheter/2019/07/27/3-laste-opp-bilder-med-php/ viste jeg hvordan man laster opp bilder med PHP. I dette innlegget er fokuset å samle bildene i ulike album for å få bedre oversikt over innholdet.

Kjente nettsider som Instagram – https://www.instagram.com/?hl=nb, facebook og andre lagrer bildene i ulike gallerier for å gi brukere lettere oversikt over dem. I dette innlegget viser jeg hvordan man kan lage en enkel versjon av dette.

Contents

Innhold:

  1. Opprette tabellen
  2. Oppdatere koden i index.php
  3. Oppdatere ‘AddImage.inc.php’
  4. Lage lenke til hvert galleri og hente bildene i album.php
  5. Skjermbilder

1. Opprette tabellen ‘album’ i phpmyadmin

Først oppretter jeg en tabell i databasen (i phpmyadmin) hvor jeg tidligere laget bildetabellen.

Oppretter tabellen album med id (AUTO-INCREMENT) og name (VARCHAR)

Når tabellen er opprettet med kolonnen id og name, kan jeg legge til eksempelalbum, i dette tilfellet natur og landskap.

Setter inn to eksempelrader i tabellen ‘album’

Samtidig oppretter jeg en ny kolonne i images-tabellen kalt ‘albumid’. Denne kolonnen er en fremmednøkkel til tabellen ‘album’, og verdien som settes inn i denne kolonnen er ‘id’ til albumet jeg vil sette bildet inn i.

Album er lagt til som fremmednøkkel i images-tabellen

2. Oppdatere koden i index.php

Når tabellen er opprettet kan jeg lage en ny fil i mappen «IMAGEUPLOAD» i teksteditoren, kalt album.php, hvor informasjonen om hvert enkelt galleri blir hentet.

album.php-filen hvor bildene samles etter id.

I ‘index.php’ legger jeg til kode i skjemaet som tar seg av bildeopplastingen. Jeg legger til et SELECT-skjema som henter informasjon fra tabellen album.

Deretter lager jeg en option som inneholder id-en til hvert enkelt album som verdi, og det albumet som blir valgt sendes med id-en til AddImage.inc.php. For å vise navnet på hvert galleri legger jeg til en echo-funksjon som viser navnet på hvert av disse i valgmenyen.

For å hente informasjon fra album-tabellen kjører jeg en spørring mot den, og setter hver enkelt rad inn i en while-loop slik at hvert album dukker opp i valgmenyen.

I album.php henter jeg alle bildene knyttet til en verdi, altså id. Ved hjelp av en spørring mot tabellen images kan jeg vise alle bildene med samme albumid i en løkke. Kun bildene fra et galleri vises på denne siden, og id-en sendes fra index.php i en $_GET-variabel.

3. Oppdatere ‘AddImage.inc.php’

Skjemaet sendes fortsatt til ‘AddImage.inc.php’ i includes-mappen, og for å sette inn fremmednøkkel-id i images-tabellen må den oppdateres til å inkludere ‘albumid’ som sendes i select-menyen til AddImage.inc.php.

‘albumid’ har blitt lagt til i AddImage.inc.php slik at det settes inn i tabellen images når bildet blir lastet opp.

4. Lage lenke til hvert galleri og hente bildene på gallerisiden

For å lenke til hvert album, lager jeg en while-løkke i index.php som sender ut navnet på hvert av disse, samt det tilhørende id-et.

select album while loop

I filen album.php hentes innholdet fra bildetabellen som har id tilsvarende det som blir sendt i lenken fra index.php. Hvis jeg for eksempel laster opp tre bilder til galleriet natur, vil de vises på lenken til naturgalleriet.

Album-lenker
Lenker til album.php med id til albumene
album natur
Albumet natur

Hvis jeg laster opp et par bilder til det andre albumet kalt ‘landskap’, kan man se at siden er en dynamisk side, altså at den endrer innhold etter hvilke forespørsler som sendes til siden.

Når jeg trykker på lenken til landskap vises helt andre bilder knyttet til galleriet landskap.

landskap album
Bildene med id-en til landskap

5. Skjermbilder

Legg igjen en kommentar