⊗ppPmSDDb 442 of 447 menu

Silnik oparty na bazie danych w PHP

Stwórzmy teraz silnik strony, w którym treść stron będzie przechowywana nie w plikach, lecz w bazie danych. Załóżmy, że w bazie danych mamy taką tabelę:

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

Załóżmy, że chcemy otrzymywać nasze strony po adresach URL postaci /page/1, gdzie liczba będzie przedstawiać id tej strony, którą chcemy otrzymać.

Przystąpmy do realizacji. Na początku w oddzielnym pliku wykonajmy połączenie z bazą danych i połączmy ten plik z naszym:

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

Pobierzmy żądany URL:

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

Za pomocą wyrażenia regularnego podzielmy adres URL na części:

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

Zapiszmy id z grupy przechwytującej do zmiennej:

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

Wykonajmy zapytanie do bazy danych, po id pobierając żądaną stronę:

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

Pobierzmy plik szablonu:

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

W pliku szablonu wykonajmy wstawienie tytułu i treści:

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

Wyślemy złożoną stronę do przeglądarki:

<?php echo $layout; ?>

Zbierzmy wszystko razem i otrzymamy następujący kod:

<?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; ?>

Zaimplementuj opisany silnik. Sprawdź jego działanie.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć