8 Konvertere Mysql data til JSON



8 Konvertere Mysql data til JSON

av Ole Petter den 2. november 2019

Sist oppdatert: 28 november, 2019 kl 23:16

For å kunne bruke innhold fra en Mysql-database på ulike plattformer er det en god ide å konvertere databasetabellene til JSON-format.

Dette er et format som støttes av de fleste programmeringsspråk, og gjør innholdet mer fleksibelt, hvis man for eksempel vil lage en mobilapplikasjon hvor dataene lagres i en MySQL-database.

I dette eksempelet brukes samme databasen som i forrige innlegg, «ajax_posts».

Les innlegget her: https://smorasstats.com/PORTFOLIO/nyheter/2019/10/26/7-like-innlegg/

Contents

1 Konvertere tabellen posts til JSON-format

Jeg lager en ny undermappe kalt «json», i hovedmappen. Inni denne mappen lager jeg en fil kalt «posts.php», hvor jeg lager en spørring mot databasen og tabellen «posts».

posts.php i mappen json

Nå er tabellen posts konvertert til JSON-format, og kan mottas ved hjelp av en XMLHttp-request().

For å konvertere dataene til JSON-format brukes en innebygget PHP-funksjon kalt json_encode(). Denne konverterer «$rows», altså radene i tabellen posts til JSON.

Jeg lager en ny fil kalt test.php i samme mappe som posts.php, altså json-mappen.

test.php

Filen test.php, hvor jeg henter dataene fra posts.php ved hjelp av en XMLHttpRequest(). Dataene lagres i en variabel kalt «data», og hentes ved å «parse» innholdet i filen posts.php, altså (this.response).

Deretter brukes en forEach-løkke på dataen som mottas slik at alle innleggene fra tabellen vises.

For å sjekke om requesten var vellykket, inspiserer jeg siden test.php i konsollet.

Ved hjelp av console.log() vises innholdet i posts.php konvertert fra JSON-format

2 Vise innleggene på siden test.php

For å vise innleggene på siden, lager jeg en <div> med id=»post» nesten øverst på siden, og bruker denne til å endre innholdet i test.php.

Scriptet som viser innholdet fra posts.php via XMLHttpRequest()

For henholdsvis tittelen og innholdet lager jeg en ny header (h1) og paragraf (p) og lagrer disse i en variabel kalt «const h1» og «const p».

Deretter setter jeg tekstinnholdet til dataen jeg henter fra posts.php for tittel og innhold, til «h1.textContent = post.title» og «p.textContent = post.content».

Deretter bruker jeg postContainer.appendChild til å vise henholdsvis tittelen og innholdet i hvert innlegg.

En rask kikk på test.php viser at fremgangsmåten lyktes:

Innleggene vises på siden test.php via en XMLHttpRequest() fra posts.php

Legg igjen en kommentar