Door
Harry Hartman
op 25-03-2015 10:11
gewijzigd op 25-03-2015 10:12
1.633 views
Voor een banner/slider wissel ik de inhoud met if(tijdstip) elseif(tijdstip) code zodat de juiste afbeeldingen, links en achtergrond worden geladen.
Het aantal sliders is variabel, de 3 links staan apart.
Nu wil ik enkele weken vooruit coderen met de juiste img, links en bg voor dat moment en copy/paste dezelfde if() code steeds met de juiste aanpassingen.
Dat wil ik graag makkelijker maken door foreach te gaan gebruiken.
Hoe codeer je dat nu?
Hoe formuleer je een array zodat het [tijdstip][afbeeldingen][links][background] die bij elkaar horen verwerkt kan worden met foreach?
Het handigste lijkt me om er eerst een goed databasemodel voor te maken.
Daarna trek je alleen de juiste records uit de database met de query die je hiervoor nodig hebt.
Vervolgens is pas de foreach aan de beurt dat dan overigens kinderspel is
Je zou er bijvoorbeeld (om een idee te geven) voor kunnen kiezen om een tabel met de naam 'afbeeldingen' te maken waarin je alle mogelijke afbeeldingen opslaat. Ditzelfde kun je doen voor links en backgrounds. Vervolgens zou je dan een tabel met een naam als bijvoorbeeld 'banners' kunnen maken waarin je alleen de starttijd inzet en dan een een verwijzing naar een record in de andere tabellen. Zoiets dus:
-id
-starttime // datetime wanneer begonnen wordt met het laten zien van deze banner
-image_id // verwijzing naar de juiste afbeelding
-link_id // verwijzing naar de juiste link
-background_id // verwijzing naar de juiste achtergrond
Spreekt dit je een beetje aan? dan kunnen we er wat dieper op in gaan.
Kleine aanpassing:
Nieuwste array met gegevens steeds bovenaan in de array toevoegen...
Toevoegen na if loop: break; // als meest recente time klopt zodat oudere niet worden meegenomen, breekt uit totale loop