Alors vous voulez créer votre propre page, qui va interroger votre base de donnée ?

Voici l’exemple d’une page WordPress qui va ressortir le contenu d’une table nommée « goods », qui contient des produits.

Etape 1:

Dans cet exemple, Créons dans la base de données utilisée par WordPress une table nommée « goods » comme ceci:

MariaDB [mabase]> create table goods (reference varchar(30), description varchar(500), fabricant varchar(50), prix_vente float (8,2));
Query OK, 0 rows affected (0.15 sec)

MariaDB [mabase]>

Ajoutons quelques articles dans la table…

MariaDB [activpart]> insert into goods (reference, description, fabricant, prix_vente) VALUES ('1111','Guidon','Peugeot',20.50);
Query OK, 1 row affected (0.04 sec)

MariaDB [activpart]> insert into goods (reference, description, fabricant, prix_vente) VALUES ('1234','Garde boue','Motobécane',15.30);
Query OK, 1 row affected (0.04 sec)

MariaDB [activpart]> select * from goods;
+-----------+-------------+-------------+------------+
| reference | description | fabricant   | prix_vente |
+-----------+-------------+-------------+------------+
| 1111      | Guidon      | Peugeot     |      20.50 |
| 1234      | Garde boue  | Motobécane  |      15.30 |
+-----------+-------------+-------------+------------+
2 rows in set (0.00 sec)

MariaDB [activpart]>

 

 

Etape 2:

Créez dans votre dossier wp-content/themes/<votre_theme> , un fichier « produits.php » qui contient:

 

<?php
/*
Template Name: produits
*/
// Version 2016-09-29
get_header(); // On affiche l'en-tête du thème WordPress
?>

<?php
global $wpdb; // On se connecte à la base de données du site
$produits = $wpdb->get_results("
SELECT reference,
description,
prix_vente
FROM goods;
");
// print_r($produits);
?>

<?php
echo "<table>";
echo "<tr>";
echo "<th>Référence</th>";
echo "<th>Description</th>";
echo "<th>Fabricant</th>";
echo "<th>Prix H.T</th>";
echo "</tr>";
foreach($produits as $produit)
   {
   echo "<tr>";
   echo "<td>".$produit->reference."</td>";
   echo "<td>".$produit->description."</td>";
   echo "<td>".$produit->fabricant."</td>";
   echo "<td style=text-align:right>".$produit->prix_vente."</td>";
   echo "</tr>";
   }
echo "</table>";
?>

<?php get_footer(); // On affiche de pied de page du thème
?>

 

Etape 3:

Dans l’interface de WordPress, créez une page vide, nommée par exemple « Les produits », en indiquant simplement le modèle correspondant au « Template Name » indiqué dans le script PHP, à savoir dans cet exemple : « produits ».

N’oubliez pas de sauvegarder la page…

Puis il ne vous reste qu’à tester le permalien:

 

Voir l’exemple ici : http://www.activpart.com/les-produits

Cet Article vous a interessé ? Pensez aux autres, laissez un commentaire…

 

Print Friendly, PDF & Email
  1. Bonjour,

    J’ai tenté d’exploiter votre exemple mais seuls les intitulés de colonnes s’affichent.

    Ne sachant pas si je peux mettre mon code ici, 2 points m’ont laissés perplexe :
    – je me réfère à une table et non une base
    – je n’ai pas su quoi mettre à la place de « goods » (FROM goods;)

    Je profite de cette demande pour vous demander confirmation de vos prix de formation.
    Mon projet :
    – un générateur de requêtes SQL avec sélection sur plusieurs tables et la faculté de saisir dans les requêtes des valeurs Maxi/Mini sur certains champs.

    Précisions :
    – il sagit d’un projet personnel en local
    – je réside à Marignane et étant à la retraite je peux me déplacer… avec plaisirs jusqu’à La Ciotat

    A vous lire
    Cordiales saltations

  2. Bonsoir Jean-Jacques,
    Merci pour ce commentaire.
    En effet pour être complet j’ai ajouté à cette article une étape: celle qui consiste à créer la table « goods » donnée en exemple, et à y ajouter quelques articles.

    Concernant votre projet, je vous adresse un Email privé demain…
    Bonne soirée,
    JF Rullier, ACTIVPART.

  3. Mon infinie reconnaissance. J’ai passé ma journée à chercher ça. Cependant, il n’y a pas plus « moderne » pour faire afficher sa base de données maintenant? Même si j’avoue qu’à l’ancienne ça me plait bien

Leave a Reply

You have to agree to the comment policy.

Blue Captcha Image
Refresh

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.