Muchas veces, estamos muy familiarizados con los «últimos blogs» o «publicaciones recientes» en los sitios web. Así que ahora, aquí hay una solución simple para mostrar los blogs recientes en el DOM usando PHP y MySQLi.
Requisitos:
- base de datos y tablas
- Servidor XAMPP
- Editor (Código VS en este artículo).
Nota: El bootstrap requerido en el código se puede descargar desde Bootstrap Download . Agregue los archivos requeridos en sus códigos HTML o PHP como se muestra a continuación.
Fragmento de código : el siguiente fragmento de código muestra cómo agregar las bibliotecas requeridas en sus respectivos códigos HTML o PHP.
<head> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/ bootstrap/4.3.1/css/bootstrap.min.css"> </head> <body> <script src=" https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/ Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"> </script> <script src=" https://stackpath.bootstrapcdn.com/bootstrap/ 4.5.2/js/bootstrap.min.js"> </script> </body>
Requisitos:
- Base de datos MySQL y tablas.
- Servidor XAMPP (Para descargar – Servidor de descargas )
- Editor (VS Code se utilizó en este artículo).
Pasos a seguir:
- Cree una base de datos con la tabla «publicaciones» que tengan «id» y los contenidos necesarios para mostrarse en la página.
- Pasos para crear una tabla en la herramienta phpmyadmin:
- Ir a phpmyadmin
- Inicie sesión con su nombre de usuario como «root» y contraseña como «».
- En la página de inicio de phpmyadmin , haga clic en *nuevo* en la barra lateral izquierda para crear una nueva base de datos.
- Asigne un nombre a la base de datos.
- Para Crear tabla , proporcione un nombre para la tabla con el número de columnas para ella.
- Proporcione los nombres de las columnas y sus respectivos tamaños o longitudes.
- Vaya a la pestaña Insertar e inserte los valores que se almacenarán. (Esto es solo un ejemplo)
Agregue los valores que se mostrarán.
- Ir a phpmyadmin
- Cree una página PHP llamada posts.php y coloque la carpeta dentro de la carpeta htdocs dentro de XAMPP .
Código HTML: descargue el directorio font-awesome en su carpeta de trabajo y consulte la ubicación adecuada para el archivo «font-awesome.min.css» como se muestra a continuación.
HTML
<!DOCTYPE html>
<
html
lang
=
"en"
dir
=
"ltr"
>
<
head
>
<
meta
charset
=
"utf-8"
>
<
meta
name
=
"viewport"
content
=
"width=device-width, initial-scale=1"
>
<
link
rel
=
"stylesheet"
href="
crossorigin
=
"anonymous"
>
<!--Font Awesome-->
<
link
rel
=
"stylesheet"
href="
path/to/font-awesome/css/font-awesome.min.css">
<!--Stylesheet-->
<
link
href
=
"style.css"
rel
=
"stylesheet"
/>
<
link
rel
=
"stylesheet"
href="
</
head
>
<
body
>
<!-- Blog Latest -->
<
div
class
=
"blog-latest"
>
<
div
class
=
"container"
>
<
h1
class
=
"blog-secondary-heading text-dark"
>
Latest Blogs
</
h1
>
<
div
class
=
"main-carousel p-2 "
id
=
"latestCarousel"
>
<
div
class
=
"carousel-cell p-2"
>
<
div
class
=
"card mx-2"
style
=
"width: 18rem;"
>
<
img
class
=
"card-img-top"
src
=
"img/1.jpg"
alt
=
"Card image cap"
>
<
div
class
=
"card-body"
>
<
h5
class
=
"card-title"
>
<
a
href
=
"blog-template.php"
class
=
"blog-link"
>
CAT 1
</
h5
>
</
a
>
<
h6
class="card-subtitle
mt-2 text-muted">
The domestic cat is a member
of the Felidae,a family that
had a common ancestor about
10–15 million years ago. The
genus Felis diverged from the
Felidae around 6–7 million
years ago.
</
h6
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
<!-- Bootstrap -->
integrity
=
"sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
crossorigin
=
"anonymous"
>
</
script
>
<
script
src
=
integrity
=
"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin
=
"anonymous"
>
</
script
>
<
script
src
=
crossorigin
=
"anonymous"
>
</
script
>
<
script
src="
</
script
>
</
body
>
</
html
>
Fragmento de código CSS: el siguiente archivo «style.css» se usa en el código anterior para diseñar los controles HTML.
*{
box-sizing: border-box;
}
.card {
height
:
40%
;
}
a.blog-link {
color
:
black
;
text-decoration
:
none
;
}
a.blog-link:hover {
color
:
#adadad
;
}
.column {
float
:
left
;
width
:
15%
;
padding
:
2px
;
height
:
100px
;
}
.row:after {
content
:
""
;
display
: table;
clear
:
both
;
}
Producción:
-
Ahora, tenemos que conectarnos a la base de datos y recuperar la «id» y, por lo tanto, todos los detalles correspondientes se agregan en el DOM. Para ello, utilizaremos las consultas de MySQL.
Aquí, primero ordenamos la base de datos usando la marca de tiempo , usando la cláusula «ordenar por» seguido de la identificación del último blog en una array seguida de otras identificaciones en el archivo » recuperar_id.php «.PHP
<?php
$servername
=
"localhost"
;
$username
=
"root"
;
$password
=
""
;
$db
=
"latest"
;
$conn
= mysqli_connect(
$servername
,
$username
,
$password
,
$db
);
if
(!
$conn
) {
die
(
'Could not connect: '
. mysqli_error());
}
/* To sort the id and limit the post by 4 */
$sql
=
"SELECT * FROM posts ORDER BY timestamp desc limit 4 "
;
$result
=
$conn
->query(
$sql
);
$sqlall
=
"SELECT * FROM posts ORDER BY timestamp desc"
;
$resultall
=
$conn
->query(
$sqlall
);
$i
= 0;
if
(
$result
->num_rows > 0) {
// Output data of each row
$idarray
=
array
();
while
(
$row
=
$result
->fetch_assoc()) {
echo
"<br>"
;
// Create an array to store the
// id of the blogs
array_push
(
$idarray
,
$row
[
'id'
]);
}
}
else
{
echo
"0 results"
;
}
?>
-
Cambie el archivo » posts.php » e incluya el «recuper_id.php» anterior en él. Coloque la tarjeta dentro de un bucle que se ejecutará hasta un número de acuerdo con la cantidad de publicaciones que desee mostrar. Usando las consultas de MySQL, recupere los valores de la tabla DB usando la array «id» creada en » recuperar_id.php «.
Coloque el código PHP o las variables que tengan valores recuperados de la base de datos en el código HTML donde sea necesario.
Código Final: Es la combinación de todos los pasos y códigos anteriores.
PHP
<?php
include
'retrieve_id.php'
?>
<!DOCTYPE html>
<html lang=
"en"
dir=
"ltr"
>
<head>
<meta charset=
"utf-8"
>
<meta name=
"viewport"
content=
"width=device-width, initial-scale=1"
>
<title>Posts</title>
<link rel=
"stylesheet"
href=
"style.css"
>
<link rel=
"stylesheet"
href=
crossorigin=
"anonymous"
>
<!--Font Awesome-->
<link rel=
"stylesheet"
href=
"path/to/font-awesome/css/font-awesome.min.css"
>
<link rel=
"stylesheet"
href=
</head>
<body>
<!-- Blog Latest -->
<div
class
=
"blog-latest"
>
<div
class
=
"container"
>
<h1
class
=
"blog-secondary-heading text-dark"
>
Latest Blogs</h1>
<div
class
=
"main-carousel p-2 "
id=
"latestCarousel"
>
<div
class
=
"row"
>
<?php
for
(
$x
= 0;
$x
< 4;
$x
++) {
// This is the loop to display all
// the stored blog posts
if
(isset(
$x
)) {
$query
= mysqli_query(
$conn
,
"SELECT * FROM `posts` WHERE id = '$idarray[$x]'"
);
$res
= mysqli_fetch_array(
$query
);
$image
=
$res
[
'img'
];
$blog_title
=
$res
[
'title'
];
$blog_text
=
$res
[
'text'
];
$blog_id
=
$res
[
'id'
];
?>
<div
class
=
"column"
>
<div
class
=
"carousel-cell p-2"
>
<div
class
=
"card mx-2"
style=
"width: 18rem;"
>
<img
class
=
"card-img-top"
src=
"<?php echo $image; ?>"
alt=
"Card image cap"
>
<div
class
=
"card-body"
>
<h5
class
=
"card-title"
>
<a href=
"blog-template.php"
class
="
blog-link">
<?php
echo
$blog_title
;
?>
</h5>
</a>
<h6
class
=
"card-subtitle mt-2 text-muted"
>
<?php
echo
$blog_text
;
?>
</h6>
</div>
</div>
</div>
</div>
<?php
}
}
?>
</div>
</div>
</div>
</div>
<!-- Bootstrap -->
<script src="
https:
//code.jquery.com/jquery-3.5.1.slim.min.js"
integrity=
"sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
crossorigin=
"anonymous"
>
</script>
<script src=
integrity=
"sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin=
"anonymous"
>
</script>
<script src=
crossorigin=
"anonymous"
>
</script>
<script src=
</script>
</body>
</html>
Salida final: