⊗ppPmSDDb 442 of 447 menu

Datu bāzes dzinis PHP

Tagad izveidosim vietnes dzini, kurā lapu saturs tiks glabāts ne failos, bet datu bāzē. Pieņemsim, ka mūsu datu bāzē ir šāda tabula:

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

Pieņemsim, ka mēs vēlamies saņemt savas lapas ar URL veidā /page/1, kur skaitlis būs tās lapas id, ko mēs vēlamies iegūt.

Sāksim realizāciju. Vispirms atsevišķā failā izveidosim savienojumu ar datu bāzi un pievienosim šo failu mūsu failam:

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

Iegūsim pieprasīto URL:

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

Ar regulārās izteiksmes palīdzību sadalīsim URL daļās:

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

Ierakstīsim id no capture group mainīgajā:

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

Izpildīsim vaicājumu datu bāzei, pēc id iegūstot pieprasīto lapu:

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

Iegūsim veidnes failu:

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

Veidnes failā veiksim virsraksta un satura ievietošanu:

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

Nosūtīsim salikto vietnes lapu uz pārlūkprogrammu:

<?php echo $layout; ?>

Apvienosim visu kopā un iegūsim šādu kodu:

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

Realizējiet aprakstīto dzini. Pārbaudiet tā darbību.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt