⊗ppPmSDDb 442 of 447 menu

Enjin gebaseer op 'n databasis in PHP

Laat ons nou 'n webwerf-enjin skep waarin die bladsy-inhoud nie in lêers gestoor word nie, maar in 'n databasis. Kom ons sê ons het die volgende tabel in die databasis:

pages
id title content
1 title1 <div> content1 </div>
2 title2 <div> content2 </div>
3 title3 <div> content3 </div>

Kom ons sê ons wil ons bladsye kry by URL's van die vorm /page/1, waar die getal die id van die bladsy sal voorstel wat ons wil kry.

Kom ons begin met die implementering. Eers, in 'n aparte lêer, maak ons 'n verbinding met die databasis en koppel ons hierdie lêer aan ons s'n:

<?php $link = require 'connect.php'; ?>

Kry die aangevraagde URL:

<?php $url = $_SERVER['REQUEST_URI']; ?>

Deel die URL in dele met behulp van 'n reëlmatige uitdrukking:

<?php preg_match('#/page/(\d+)#', $url, $match); ?>

Stoor die id uit die "capture group" in 'n veranderlike:

<?php $id = $match[1]; ?>

Voer 'n navraag na die databasis uit om die aangevraagde bladsy volgens id te kry:

<?php $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); ?>

Kry die sjabloonlêer:

<?php $layout = file_get_contents('layout.php'); ?>

Voer die invoeging van die titel en inhoud in die sjabloonlêer uit:

<?php $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); ?>

Stuur die saamgestelde webwerfblad na die blaaier:

<?php echo $layout; ?>

Laat ons alles bymekaar sit en die volgende kode kry:

<?php require 'connect.php'; $url = $_SERVER['REQUEST_URI']; preg_match('#/page/(\d+)#', $url, $match); $id = $match[1]; $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Implementeer die beskryfde enjin. Toets die werking daarvan.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp