⊗ppPmSDDb 442 of 447 menu

Motor basado en base de datos en PHP

Ahora creemos un motor de sitio web en el cual el contenido de las páginas no se almacenará en archivos, sino en una base de datos. Supongamos que tenemos la siguiente tabla en la base de datos:

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

Supongamos que queremos obtener nuestras páginas mediante URLs como /page/1, donde el número representará el id de la página que queremos obtener.

Comencemos con la implementación. Primero, en un archivo separado establezcamos la conexión a la base de datos y conectemos este archivo al nuestro:

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

Obtengamos la URL solicitada:

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

Usando una expresión regular dividamos la URL en partes:

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

Guardemos el id del grupo capturado en una variable:

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

Ejecutemos una consulta a la base de datos, obteniendo la página solicitada por id:

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

Obtengamos el archivo de plantilla:

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

En el archivo de plantilla realicemos la inserción del título y del contenido:

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

Enviemos la página del sitio web ensamblada al navegador:

<?php echo $layout; ?>

Juntemos todo y obtendremos el siguiente código:

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

Implemente el motor descrito. Compruebe su funcionamiento.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar