Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer et Gérer des Données Dynamiques avec PHP et MySQL
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Créer et Gérer des Données Dynamiques avec PHP et MySQL

L'Équipe Alphorm Par L'Équipe Alphorm 24 novembre 2024
Partager
Partager

La gestion des biens immobiliers peut être complexe, surtout quand il s’agit de suivre les transactions multiples pour chaque bien.

Cela peut entraîner des erreurs dans le suivi, une mauvaise gestion des stocks, et des pertes financières.

Cet article vous guide dans la création d’une page PHP dédiée pour afficher les détails d’un bien et gérer toutes les transactions associées, en utilisant des formulaires et une base de données pour un suivi optimal.

Table de matière
Créer la page détail-bien PHPCréer table transaction PHPFormulaire achat bien en PHPachatStyliser formulaire achat PHPFormulaire vente bien PHPachatventeFormulaire loyer bien PHPloyerInsérer achat dans transaction PHPvalidationContrôler formulaire achat PHPvalidationUtiliser switch en PHPvalidationInsérer vente dans transaction PHPInsérer loyer dans transaction PHPDynamiser titre page bien PHPListe achats bien avec PHPFormater date en PHPListe achats formatée PHPListe ventes bien avec PHPListe loyers bien avec PHPFAQConclusion

Formation PHP 8 : Atelier Complet Débutant

Réalisez votre projet web de A à Z sous PHP 8

Découvrir cette formation

Créer la page détail-bien PHP

Vous allez créer une page PHP dédiée à l’affichage des détails d’un bien particulier. Cette page sera accessible via un lien spécifique à chaque bien, qui redirige l’utilisateur vers une vue plus détaillée.

Diagramme de structure des fichiers PHP du projet
  • Créer le fichier detail-bien.php dans votre dossier admin. Ce fichier affichera les informations détaillées d’un bien sélectionné.
				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Détail du Bien</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<?php
 $sql = 'SELECT * FROM bien WHERE bienID = :bienID';
 $req = $cnx->prepare($sql);
 $req->execute(array(
 ':bienID' => $_GET['bienID']
 ));
 $data = $req->fetch(PDO::FETCH_ASSOC);
 ?>
<article>
<section>
<h1><?= $data['bien'];?></h1>
</section>
</article>
<script>class RocketElementorAnimation{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}_detectAnimations(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this._listAnimationSettingsKeys(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach(t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this._animateElement(t)}catch(t){}})}_animateElement(t){const e=JSON.parse(t.dataset.settings),i=e._animation_delay||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let s=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this._removeAnimationSettings(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(s)})}_listAnimationSettingsKeys(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}_removeAnimationSettings(t,e){this._listAnimationSettingsKeys().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorAnimation;requestAnimationFrame(t._detectAnimations.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorAnimation.run);</script></body>
</html>

				
			
  • Passer l’identifiant du bien dans l’URLvia un paramètre GET :

Dans le fichier index.php du dossier admin, ajoutez cette ligne

				
					
 <p><a href="bien-detail.php?bienID=&lt;?=$data[&#039;bienID&#039;];?" data-wpel-link="internal" target="_self" rel="follow noopener noreferrer">">Détail</a></p>

				
			

Cette URL redirigera vers la page detail-bien.php avec l’identifiant du bien comme paramètre.

Résultat d’affichage :

  • Détail du Bien :La page detail-bien.php affichera le nom du bien, une image associée, et toute autre information pertinente sur le bien.
  • Lien dans index.php :Chaque bien dans la liste aura un lien « Détail » qui dirigera vers la page detail-bien.php avec l’identifiant du bien.
Aperçu de l'interface détaillant un immeuble

Créer table transaction PHP

Dans cette section, vous allez créer une table transaction pour gérer les informations relatives aux transactions des biens. Cette table stockera les informations essentielles telles que l’identifiant de la transaction, le bien concerné, la date de la transaction, et d’autres détails pertinents.

Diagramme de base de données PHP Bricks

S tructure de la table transaction :

Cette table stocke les informations relatives aux transactions des biens, telles que la quantité, le prix unitaire (PU), le montant total, la date de la transaction, et les références aux biens et types de transactions.

Étapes pour créer la table transaction :

  • Étape 1 :Accéder à phpMyAdmin

Tout d’abord, connectez-vous à votre serveur phpMyAdmin. Si vous utilisez un environnement local comme XAMPP ou WAMP, vous pouvez y accéder en tapant localhost/phpmyadmin dans votre navigateur.

Astuce Pratique : Si vous avez du mal à accéder à phpMyAdmin, assurez-vous que votre serveur local est bien démarré.

Étape 2 : Créer la table ‘ transaction ‘

  • Après avoir créé la base de données, sélectionnez-la dans la liste à gauche.
  • Cliquez sur Nouvelle table .
  • Nommez la table transaction et définissez le nombre de colonnes à 3.

Étape 3 : Configurez les colonnes de table ‘transaction ’

Colonnes :

  • transactionID :Clé primaire, entier auto-incrémenté.
  • quantite :Quantité de biens dans la transaction.
  • pu :Prix unitaire du bien.
  • montant :Montant total de la transaction.
  • dateTransaction :Date et heure de la transaction.
  • bienID :Référence à la table bien, clé étrangère.
  • typeID :Référence à la table type, clé étrangère.
  • Cliquez sur Enregistrer pour créer la table.

Résultat final

Après avoir configuré les colonnes comme décrit ci-dessus et cliqué sur  » Enregistrer « , la table transaction sera créée avec les colonnes spécifiées. Vous pourrez ensuite utiliser cette table pour stocker les informations relatives aux transactions des biens.

Structure de table MySQL via PHPMyAdmin

Structure de la table type :

La table type définit les types de transactions, par exemple, achat, vente, retour, etc.

Étapes pour créer la table type :

Étape 1 : Créer la table ‘ type ‘

  • Après avoir créé la base de données, sélectionnez-la dans la liste à gauche.
  • Cliquez sur Nouvelle table .
  • Nommez la table type et définissez le nombre de colonnes à 2.

Étape 2 : Configurez les colonnes de table ‘type ’

Colonnes :

  • typeID :Clé primaire, entier auto-incrémenté.
  • type :Chaîne de caractères représentant le type de transaction (par exemple : « achat », « vente »).

Résultat final :

Après avoir configuré les colonnes comme décrit ci-dessus et cliqué sur  » Enregistrer « , la table type sera créée avec les colonnes spécifiées. Vous pourrez ensuite utiliser cette table pour définir les types de transactions dans votre application.

Table MySQL avec typeID et type, auto-increment

Insérez trois lignes dans la table type

Table PHP avec options d'édition et suppression.

Formulaire achat bien en PHP

Dans cette section, vous allez créer un formulaire qui permettra à un utilisateur d’acheter un bien. Ce formulaire collectera des informations essentielles comme la quantité souhaitée, le prix unitaire, et permettra de déclencher une transaction.

Code source de fichier detail-bien.php :

Voici le code complet avec le formulaire d’achat intégré :

				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Détail du Bien</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<?php
 $sql = 'SELECT * FROM bien WHERE bienID = :bienID';
 $req = $cnx->prepare($sql);
 $req->execute(array(
 ':bienID' => $_GET['bienID']
 ));
 $data = $req->fetch(PDO::FETCH_ASSOC);
 ?>
<article>
<section>
<h1><?= $data['bien'];?></h1>
<!-- Formulaire d'achat -->
<div class="invest">
<h2 id="achat" class="rb-heading-index-8 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> achat</h2>
<form action="" method="post">
<div>
<label for="qtAchat">quantité</label>
<input type="number" name="qtAchat" id="qtAchat" placeholder="1">
</div>
<div>
<label for="unitaireAchat">prix unitaire</label>
<input type="number" name="unitaireAchat" id="unitaireAchat" placeholder="10">
</div>
<div>
<label for="dateAchat">date achat</label>
<input type="date" name="dateAchat" id="dateAchat">
</div>
<div>
<input type="submit" name="acheter" value="Acheter">
</div>
<input type="hidden" name="typeID" value="1">
<input type="hidden" name="bienID" value="<?= $_GET['bienID'];?>">
</form>
</div>
</section>
</article>
<script src="https://kit.fontawesome.com/50786edb2e.js" crossorigin="anonymous" data-rocket-defer defer></script>
</body>
</html>

				
			

Résultat d’affichage :

Le formulaire d’achat sera affiché sur la page de détails du bien. Il permettra aux utilisateurs de spécifier la quantité, le prix unitaire, et la date d’achat pour déclencher une transaction.

Formulaire achat PHP immo Belfort
Question : Comment pouvez-vous styliser le formulaire d’achat d’un bien ?

Styliser formulaire achat PHP

Pour améliorer l’expérience utilisateur et rendre le formulaire d’achat plus attrayant visuellement, vous allez ajouter du style en utilisant CSS. Cette section vous guidera pour structurer et styliser correctement le formulaire.

Ajoutez ce code CSS au fichier style.css.

				
					
 /*** INVEST ***/
.invest {
width: 90%;
background-color: #fff;
margin: 20px auto;
padding: 10px;
border-radius: 10px;
border: 1px solid #e1e1e1;
}
.invest form{
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.invest h2{
text-transform: uppercase;
font-size: 20px;
margin-top: 2px;
margin-bottom: 7px;
}
.invest form div{
text-align: center;
padding: 10px;
}
.invest label{
text-transform: capitalize;
color: #7f8f8d;
font-size: 13px;
}
.invest input[type="number"]{
width: 80px;
padding: 15px;
}
.invest input[type="date"], .invest input[type="submit"]{
width: 150px;
padding: 14px;
}
/*** INVEST ***/

				
			

Résultat d’affichage :

Le formulaire d’achat sera visuellement amélioré grâce à ces styles :

  • Conteneur bien défini avec un fond blanc et des bordures arrondies.
  • Alignement et espacement des champs et des labels seront cohérents, facilitant la lecture et l’interaction.
  • Champs et boutons seront adaptés pour être plus ergonomiques.
Formulaire d'achat PHP avec options détaillées

Formulaire vente bien PHP

Dans cette section, vous allez créer un formulaire qui permettra de vendre un bien. Ce formulaire collectera les informations nécessaires pour enregistrer une transaction de vente dans la base de données.

Modifiez le code source du fichier detail-bien.php :

				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Détail du Bien</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<?php
 $sql = 'SELECT * FROM bien WHERE bienID = :bienID';
 $req = $cnx->prepare($sql);
 $req->execute(array(
 ':bienID' => $_GET['bienID']
 ));
 $data = $req->fetch(PDO::FETCH_ASSOC);
 ?>
<article>
<section>
<h1><?= $data['bien'];?></h1>
<!-- Formulaire d'achat -->
<div class="invest">
<h2 id="achat" class="rb-heading-index-8 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> achat</h2>
<form action="" method="post">
<div>
<label for="qtAchat">quantité</label>
<input type="number" name="qtAchat" id="qtAchat" placeholder="1">
</div>                    <div>
<label for="unitaireAchat">prix unitaire</label>
<input type="number" name="unitaireAchat" id="unitaireAchat" placeholder="10">
</div>
<div>
<label for="dateAchat">date achat</label>
<input type="date" name="dateAchat" id="dateAchat">
</div>
<div>
<label for="">achat</label>
<input type="submit" name="acheter" value="Acheter">
</div>
<input type="hidden" name="typeID" value="1">
<input type="hidden" name="bienID" value="<?= $_GET['bienID'];?>">
</form>
</div>
<!-- Formulaire dd vente -->
<div class="invest">
<h2 id="vente" class="rb-heading-index-13 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> vente</h2>
<form action="" method="post">
<div>
<label for="qtVente">quantité</label>
<input type="number" name="qtVente" id="qtVente" placeholder="1">
</div>
<div>
<label for="unitaireVente">prix unitaire</label>
<input type="number" name="unitaireVente" id="unitaireVente" placeholder="10">
</div>
<div>
<label for="dateVente">date vente</label>
<input type="date" name="dateVente" id="dateVente">
</div>
<div>
<label for="">vendre</label>
<input type="submit" name="vendre" value="Vendre">
</div>
<input type="hidden" name="typeID" value="2">
<input type="hidden" name="bienID" value="<?= $_GET['bienID'];?>">
</form>
</div>
</section>
</article>
<script src="https://kit.fontawesome.com/50786edb2e.js" crossorigin="anonymous" data-rocket-defer defer></script>
</body>
</html>

				
			

Résultat d’affichage :

  • Deux formulaires :Un pour l’achat et un pour la vente, chacun avec ses propres champs et bouton de soumission.
  • Disposition :Les formulaires seront stylisés comme défini dans le CSS et apparaîtront sous la section des détails du bien.
  • Étiquettes et champs :Les étiquettes et les champs de saisie sont bien alignés pour faciliter l’utilisation.
Interface achat vente immeuble en PHP

Formulaire loyer bien PHP

Dans cette section, vous allez créer un formulaire qui permettra d’enregistrer un loyer pour un bien. Ce formulaire collectera les informations nécessaires pour effectuer une transaction liée à la location d’un bien.

Le formulaire de loyer d’un bien

				
					
 <!-- Formulaire de loyer -->
<div class="invest">
<h2 id="loyer" class="rb-heading-index-15 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> loyer</h2>
<form action="" method="post">
<div>
<label for="loyer">montant</label>
<input type="number" ste="any" name="loyer" id="loyer" placeholder="1">
</div>
<div>
<label for="dateLoyer">date loyer</label>
<input type="date" name="dateLoyer" id="dateLoyer">
</div>
<div>
<label for="">valider</label>
<input type="submit" name="validerLoyer" value="Valider">
</div>
<input type="hidden" name="typeID" value="3">
<input type="hidden" name="bienID" value="<?= $_GET['bienID'];?>">
</form>
</div>

				
			

Résultat d’affichage :

  • Formulaire de loyer :Affiché sous les formulaires d’achat et de vente, avec un style cohérent et un alignement approprié.
  • Alignement et style :Les éléments du formulaire sont alignés pour une présentation claire et professionnelle.
Interface de gestion pour l'achat et vente immobilier.

Insérer achat dans transaction PHP

Dans cette section, vous allez mettre en place un processus pour insérer les informations relatives à un achat dans la table transaction . Cela vous permettra d’enregistrer les transactions d’achat effectuées par vos utilisateurs.

Étapes pour insérer un achat dans la table transaction :

Création de fichier bien-detail-submit.php

Ce fichier va vérifier les champs du formulaire d’achat, s’assurer que les données sont valides, calculer le montant total et insérer les données dans la table transaction.

  • Récupérer les données du formulaire via $_POST.
  • Valider les données pour s’assurer qu’elles sont correctes (quantité positive, prix valide, etc.).
  • Calculer le montant total (quantité * prix unitaire).
  • Insérer les données dans la base de données si la validation est réussie.

Code source de fichier bien-detail-submit.php

				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Validation</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<article>
<section>
<div class="invest">
<?php
 //Insert Achat
 if (empty($_POST['qtAchat']) || empty($_POST['unitaireAchat']) || empty($_POST['dateAchat'])) {
     echo '<div class="error">Merci de remplir tous les champs</div>';
 } else {
     $sql = 'INSERT INTO transaction
(quantite,pu,montant,dateTransaction,typeID,bienID) VALUES
(:quantite,:pu,:montant,:dateTransaction,:typeID,:bienID)';
     $req = $cnx->prepare($sql);
     $req->execute(
         array(
':quantite' => $_POST['qtAchat'],
':pu' => $_POST['unitaireAchat'],
':montant' => $_POST['qtAchat'] * $_POST['unitaireAchat'],
':dateTransaction' => $_POST['dateAchat'],
':typeID' => $_POST['typeID'],
':bienID' => $_POST['bienID']
)
     );
     echo '<div class="success">L\'achat a bien été inséré</div>';
 }
 ?>
<h2 id="validation" class="rb-heading-index-17 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> validation</h2>
</div>
</section>
</article>
<script src="https://kit.fontawesome.com/50786edb2e.js" crossorigin="anonymous" data-rocket-defer defer></script>
</body>
</html>

				
			

Résultat d’affichage :

Cas de réussite

Lorsque l’achat est correctement inséré dans la base de données, le message suivant sera affiché :

Formulaire achat bien immobilier sur PHP
Infos : Si le formulaire n’a pas été soumis correctement, le script redirige l’utilisateur vers la page de détail du bien.

Contrôler formulaire achat PHP

Pour contrôler le formulaire d’achat, vous devez valider les champs avant de procéder à l’insertion dans la base de données. Voici les étapes pour un bon contrôle :

Étapes de contrôle du formulaire d’achat :

  • Vérifier la soumission du formulaire :Utilisez la méthode POST pour vérifier que le formulaire a bien été soumis.
  • Valider les champs obligatoires :Assurez-vous que tous les champs nécessaires (quantité, prix unitaire, bienID) sont remplis et non vides.
  • Valider les types de données :Assurez-vous que les valeurs des champs numériques (quantité et prix) sont bien des nombres et qu’ils sont positifs.
  • Gérer les erreurs :Si des erreurs sont détectées, affichez des messages appropriés à l’utilisateur.

Code source avec contrôles :

Voici le code source modifié pour bien-detail-submit.php avec les contrôles nécessaires :

				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Validation</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<article>
<section>
<div class="invest">
<?php
 //Insert Achat
 if (isset($_POST['acheter'])) {
     if (empty($_POST['qtAchat']) || empty($_POST['unitaireAchat']) || empty($_POST['dateAchat'])) {
         echo '<div class="error">Merci de remplir tous les champs</div>';
     } else {
         $sql = 'INSERT INTO transaction
(quantite,pu,montant,dateTransaction,typeID,bienID) VALUES
(:quantite,:pu,:montant,:dateTransaction,:typeID,:bienID)';
         $req = $cnx->prepare($sql);
         $req->execute(
             array(
':quantite' => $_POST['qtAchat'],
':pu' => $_POST['unitaireAchat'],
':montant' => $_POST['qtAchat'] * $_POST['unitaireAchat'],
':dateTransaction' => $_POST['dateAchat'],
':typeID' => $_POST['typeID'],
':bienID' => $_POST['bienID']
)
         );
         header('location:bien-detail.php?bienID='.$_POST['bienID']);
     }
 }
 ?>
<h2 id="validation" class="rb-heading-index-17 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> validation</h2>
<form action="bien-detail.php?bienID=<?=$_POST['bienID'];?>" method="Post">
<input type="submit" value="Retour">
<input type="hidden" name="qtAchat" value="<?=$_POST['qtAchat'];?>">
<input type="hidden" name="unitaireAchat" value="<?=$_POST['unitaireAchat'];?>">
<input type="hidden" name="dateAchat" value="<?=$_POST['dateAchat'];?>">
</form>
</div>
</section>
</article>
<script src="https://kit.fontawesome.com/50786edb2e.js" crossorigin="anonymous" data-rocket-defer defer></script>
</body>
</html>

				
			
Erreur courante :
Champs manquants ou invalides : Ne pas vérifier les champs correctement peut entraîner des erreurs SQL ou un comportement inattendu lors de l’insertion des données.

Modifiez le formulaire du fichier bien-detail.php :

Lorsque vous oubliez de remplir un champ, un message d’erreur s’affiche. Lorsque vous revenez au formulaire, les données saisies précédemment sont conservées.

				
					
 <div>
<label for="qtAchat">quantité</label>
<input type="number" name="qtAchat" id="qtAchat" placeholder="1" value="<?php if (isset($_POST['qtAchat'])) {
    echo $_POST['qtAchat'];
}?>">
</div>
<div>
<label for="unitaireAchat">prix unitaire</label>
<input type="number" name="unitaireAchat" id="unitaireAchat" placeholder="10" value="<?php if (isset($_POST['unitaireAchat'])) {
    echo $_POST['unitaireAchat'];
} else {
    echo '10';
}?>">
</div>
<div>
<label for="dateAchat">date achat</label>
<input type="date" name="dateAchat" id="dateAchat" value="<?php if (isset($_POST['dateAchat'])) {
    echo $_POST['dateAchat'];
}?>">
</div>

				
			

Résultat d’affichage :

Cas 1 : Les champs sont vides.

Si des champs sont manquants ou invalides, vous verrez un message d’erreur affiché en rouge :

Formulaire d'achat et validation avec message d'erreur

Cas 2 : Les champs sont remplis.

Après une soumission réussie, l’utilisateur est redirigé vers la page de détails du bien avec un message de succès affiché sur la page de validation. Les données saisies seront réaffichées dans le formulaire pour éviter la perte d’informations en cas d’erreur.

Formulaire et validation d'achat PHP
Astuce pratique : Vous pouvez également ajouter une validation JavaScript côté client pour éviter d’envoyer des données incorrectes au serveur.

Utiliser switch en PHP

Dans cette section du code PHP, le switch est utilisé pour gérer différentes actions en fonction de la valeur de $_POST[‘validation’]. Lorsque le formulaire est soumis, le switch dirige le flux d’exécution vers le bloc de code correspondant à la valeur fournie. Pour le case 1, le script commence par vérifier si les champs requis (qtAchat, unitaireAchat, dateAchat) sont remplis. Si l’un de ces champs est vide, un message d’erreur est généré, informant l’utilisateur de l’obligation de compléter tous les champs nécessaires. Un formulaire de retour est également présenté pour permettre à l’utilisateur de corriger les informations sans perdre les données déjà saisies. Si tous les champs sont correctement remplis, le script prépare et exécute une requête SQL pour insérer les données dans la table transaction, puis redirige l’utilisateur vers la page de détail du bien concerné. Les autres valeurs possibles pour $_POST[‘validation’] (dans les case 2 et case 3) peuvent être utilisées pour gérer d’autres actions spécifiques, tandis que le default affiche un message d’erreur en cas de valeur non prévue.

Diagramme conditionnel switch bouton PHP

Code source de fichier bien-detail-submit.php avec switch :

				
					
 <?php
session_start();
 if (isset($_SESSION['pseudo'])) {
     $pseudo = $_SESSION['pseudo'];
 } else {

     header('location:../index.php');
 }
 include('cnx/cnx.php');
 ?>
<!DOCTYPE html>
<html lang="en">
<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Validation</title>
<link rel="stylesheet" href="ergonomie/css/style.css">
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https://blog.alphorm.com/wp-content/plugins/jet-tabs/assets/images/spinner-32.svg');}.rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".jet-image-accordion__item-loader span","style":".jet-image-accordion__item-loader span{--wpr-bg-f783562b-51f0-417c-8196-bee2d211e8b2: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg');}","hash":"f783562b-51f0-417c-8196-bee2d211e8b2","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/jet-tabs\/assets\/images\/spinner-32.svg"},{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-715a291a-84e9-4eca-bfc6-33f45fea971e: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"715a291a-84e9-4eca-bfc6-33f45fea971e","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<article>
<section>
<div class="invest">
<?php
switch ($_POST['validation']) {
    case 1:
        //Insert Achat
        $bienID = $_POST['bienID'];
        $qtAchat = $_POST['qtAchat'];
        $unitaireAchat = $_POST['unitaireAchat'];
        $dateAchat = $_POST['dateAchat'];
        if (isset($_POST['acheter'])) {
            if (empty($_POST['qtAchat']) || empty($_POST['unitaireAchat']) || empty($_POST['dateAchat'])) {
                $message = '<div class="error">Merci de remplir tous les champs</div>
<form action="bien-detail.php?bienID='.$bienID.'" method="post">
<input type="submit" value="Retour">
<input type="hidden" name="qtAchat" value="'.$qtAchat.'">
<input type="hidden" name="unitaireAchat" value="'.$unitaireAchat.'">
<input type="hidden" name="dateAchat" value="'.$dateAchat.'">
</form>';
            } else {
                $sql = 'INSERT INTO transaction
(quantite,pu,montant,dateTransaction,typeID,bienID) VALUES
(:quantite,:pu,:montant,:dateTransaction,:typeID,:bienID)';
                $req = $cnx->prepare($sql);
                $req->execute(
                    array(
':quantite' => $_POST['qtAchat'],
':pu' => $_POST['unitaireAchat'],
':montant' => $_POST['qtAchat'] * $_POST['unitaireAchat'],
':dateTransaction' => $_POST['dateAchat'],
':typeID' => $_POST['typeID'],
':bienID' => $_POST['bienID']
)
                );
                header('location:bien-detail.php?bienID='.$_POST['bienID']);
            }
        }
        break;
    case 2:
        break;

    case 3:

        break;
    default:
        echo'Une erreur est survenu';
}
 ?>
<h2 id="validation" class="rb-heading-index-17 fa-solid fa-caret-right"> <i class="fa-solid fa-caret-right"></i> validation</h2>
<?=$message;?>
</div>
</section>
</article>
<script src="https://kit.fontawesome.com/50786edb2e.js" crossorigin="anonymous" data-rocket-defer defer></script>
</body>
</html>

				
			
  • Ajoutez le code suivant au fichier bien-detail.php

Pour le formulaire d’achat

				
					
 <input type="hidden" name="validation" value="1">

				
			

Pour le formulaire de vendre :

				
					
 <input type="hidden" name="validation" value="2">

				
			

Pour le formulaire de loyer

				
					
 <input type="hidden" name="validation" value="3">

				
			

Insérer vente dans transaction PHP

Dans cette section, le script PHP se charge d’insérer les informations relatives à la vente dans la base de données après avoir vérifié la validité des données fournies.

Modifiez switch

Modification de cas 2 :

				
					
 case 2:
//Insert Vente
$bienID = $_POST['bienID'];
$qtVente = $_POST['qtVente'];
$unitaireVente =$_POST['unitaireVente'];
$dateVente = $_POST['dateVente'];
if(isset($_POST['vendre'])){
if(empty($qtVente) || empty($unitaireVente ) || empty($dateVente)){
$message = '<div class="error">Merci de remplir tous les champs</div>
<form action="bien-detail.php?bienID='.$bienID.'" method="post">
<input type="submit" value="Retour">
<input type="hidden" name="qtVente" value="'.$qtVente.'">
<input type="hidden" name="unitaireVente" value="'.$unitaireVente.'">
<input type="hidden" name="dateVente" value="'.$dateAchat.'">
</form>';
}else{
$sql = 'INSERT INTO transaction
(quantite,pu,montant,dateTransaction,typeID,bienID) VALUES
(:quantite,:pu,:montant,:dateTransaction,:typeID,:bienID)';
$req = $cnx->prepare($sql);
$req->execute(
array(
':quantite' =>$qtVente,
':pu' =>$unitaireVente,
':montant' =>$qtVente * $unitaireVente,
':dateTransaction' =>$dateVente,
':typeID' =>$_POST['typeID'],
':bienID' =>$bienID
)
);
header('location:bien-detail.php?bienID='.$_POST['bienID']);
}
}
break;

				
			

Explication de code :

  • Récupération des Données :Vous extrayez les informations du formulaire soumis
  • Validation des Champs :Vous vérifiez si tous les champs requis sont remplis. Si l’un de ces champs est vide, vous affichez un message d’erreur demandant à l’utilisateur de compléter toutes les informations. Un formulaire est également fourni pour permettre à l’utilisateur de revenir à la page précédente avec les données déjà saisies.
  • Calcul du Montant Total :Si tous les champs sont correctement remplis, vous calculez le montant total de la vente en multipliant la quantité par le prix unitaire.
  • Insertion des Données :Vous préparez une requête SQL pour insérer les données dans la table transaction. La requête utilise des paramètres pour éviter les injections SQL et inclut les valeurs suivantes : quantité (quantite), prix unitaire (pu), montant total (montant), date de la transaction (dateTransaction), identifiant du type (typeID), et identifiant du bien (bienID). Vous exécutez ensuite cette requête en passant les valeurs correspondantes.
  • Redirection :Après l’insertion des données, vous redirigez l’utilisateur vers la page de détail du bien concerné pour mettre à jour les informations affichées et confirmer que la vente a été correctement enregistrée

Résultat d’affichage :

Insertion des données de vente

Après une insertion réussie, l’utilisateur est redirigé vers la page de détail du bien, où les informations mises à jour sont affichées.

Interface de vente montrant quantité, prix et date

Vérification enregistrement des données dans la table transaction

Tableau montrant des achats et une vente SQL

Insérer loyer dans transaction PHP

Dans cette section, vous allez insérer les informations relatives à un loyer dans la table transaction. Cela vous permettra d’enregistrer les paiements de loyer effectués par vos utilisateurs.

Étapes pour insérer un loyer dans la table transaction :

  • Récupérer les données du formulaire :Vous allez extraire les informations soumises par l’utilisateur, telles que le bienID (l’identifiant du bien), le montant du loyer, la date de paiement, et toute autre donnée pertinente.
  • Valider les champs :Assurez-vous que tous les champs requis (comme le montant et la date) sont remplis. Si un champ est manquant, vous allez afficher un message d’erreur et proposer à l’utilisateur de revenir pour compléter les données manquantes.
  • Préparer la requête SQL :Si la validation est réussie, vous allez préparer une requête SQL pour insérer les informations dans la table transaction. Cette requête doit inclure le montant du loyer, la date de la transaction, et le bienID pour identifier la propriété concernée.
  • Exécuter la requête :En utilisant la méthode execute() avec des paramètres, vous insérez les données dans la table transaction, en vous assurant que chaque champ est correctement lié à son paramètre.
  • Rediriger l’utilisateur :Après l’insertion, redirigez l’utilisateur vers la page de détail ou une page de confirmation pour valider que le paiement du loyer a bien été enregistré.

Modifiez switch

Modification de cas 3 :

				
					
 //Insert Loyer
$bienID = $_POST['bienID'];
$loyer = $_POST['loyer'];
$dateLoyer = $_POST['dateLoyer'];
if(isset($_POST['validerLoyer'])){
if(empty($loyer) || empty($dateLoyer)){
$message = '<div class="error">Merci de remplir tous les champs</div>
<form action="bien-detail.php?bienID='.$bienID.'" method="post">
<input type="submit" value="Retour">
<input type="hidden" name="loyer" value="'.$loyer.'">
<input type="hidden" name="dateLoyer" value="'.$dateLoyer.'">
</form>';
}else{
$sql = 'INSERT INTO transaction
(quantite,pu,montant,dateTransaction,typeID,bienID) VALUES
(:quantite,:pu,:montant,:dateTransaction,:typeID,:bienID)';
$req = $cnx->prepare($sql);
$req->execute(
array(
':quantite' =>0,
':pu' =>0,
':montant' =>$loyer,
':dateTransaction' =>$dateLoyer,
':typeID' =>$_POST['typeID'],
':bienID' =>$bienID
)
);
header('location:bien-detail.php?bienID='.$_POST['bienID']);
}

				
			

Résultat d’affichage :

Insertion des données de loyer

Après une insertion réussie, l’utilisateur est redirigé vers la page de détail du bien, où les informations mises à jour sont affichées.

Formulaire PHP pour saisir le montant du loyer

Vérification enregistrement des données dans la table transaction

Tableau de transactions illustrant achats et ventes

Dynamiser titre page bien PHP

Pour dynamiser le titre, vous pouvez utiliser une variable qui s’adapte au type d’action ou à la transaction effectuée (par exemple, achat, vente, loyer). Cela vous permettra d’afficher un titre qui correspond dynamiquement à l’action en cours. Voici comment vous pouvez le faire dans votre code :

Intérieur de chaque case du switch, en attribuant une valeur à la variable $titre en fonction de l’action (achat, vente, loyer) et en l’affichant dans le h2 :

				
					
 <h2> <i class="fa-solid fa-caret-right"></i><?= $titre; ?></h2>

				
			

Lorsqu’on clique sur le bouton « acheter », le titre affiché devient « Insérer un achat ». De la même manière, pour une vente ou un loyer, le titre s’adapte en affichant respectivement « Insérer une vente » ou « Insérer un loyer ».

Formulaire PHP avec bouton d'achat

Liste achats bien avec PHP

Pour afficher la liste des achats liés à un bien spécifique, vous devrez extraire les informations de la base de données et les afficher dans une structure HTML. Voici comment procéder en quelques étapes :

  • Requête SQL pour récupérer les achats :

Vous allez effectuer une requête SQL pour récupérer les achats d’un bien particulier en utilisant son bienID.

  • Exécution de la requête :

Utilisez PDO pour exécuter la requête et récupérer les données sous forme de tableau.

  • Affichage des résultats :

Bouclez sur les résultats pour les afficher dans une table ou une liste HTML.

Code PHP

				
					
 <!--Affichage des achats -->
<div class="affichage">
<h4>Liste des achats</h4>
<ul>
<?php
$sql = 'SELECT * FROM transaction WHERE bienID = :bienID AND typeID = 1';
$req = $cnx->prepare($sql);
$req->execute(array(
':bienID' => $_GET['bienID']
));
while ($dataAfficherAchat = $req->fetch(PDO::FETCH_ASSOC)) {
    ?>
<li><?= $dataAfficherAchat['dateTransaction'];?> : <?=$dataAfficherAchat['quantite'];?> * <?=$dataAfficherAchat['pu'];?>&euro; = <?=$dataAfficherAchat['montant'];?> &euro;</li>
<?php
}
?>
</ul>
</div>

				
			

Explication :

  • Récupération des achats :La requête SQL récupère tous les achats (typeID = 1) pour le bien spécifié via son bienID.
  • Affichage des achats :Si des achats sont trouvés, ils sont affichés dans un tableau HTML avec les colonnes : Quantité, Prix Unitaire, Montant Total, et Date d’Achat.
  • Gestion des cas sans achats :Si aucun achat n’est trouvé, un message « Aucun achat trouvé pour ce bien » est affiché.
Infos :
Sécurisation : Assurez-vous que le bienID est bien validé avant d’exécuter la requête pour éviter des injections SQL ou des erreurs inattendues.
Type d’achat : Le typeID est utilisé pour distinguer les types de transactions (par exemple, 1 pour les achats, 2 pour les ventes).

Résultat d’affichage :

Si des achats sont trouvés, la liste affichera les informations suivantes pour chaque achat :

Liste d'achat PHP avec date et calculs

Formater date en PHP

Pour formater la date dans l’affichage, vous pouvez utiliser la fonction DATE_FORMAT de PHP. Cela permet de convertir la date brute issue de la base de données en un format plus lisible, comme d/m/Y (jour/mois/année).

Voici comment procéder dans votre code pour formater la date d’achat :

Utilisation de DATE_FORMAT pour formater la date :

Modifiez la section d’affichage de la date dans votre boucle foreach pour inclure un formatage avec DATE_FORMAT .

Code mis à jour de la requête select :

				
					
 $sql ="SELECT transactionID,quantite,pu,montant,DATE_FORMAT(dateTransaction,'%d/%m/%Y') As dateFR FROM transaction WHERE bienID = :bienID AND typeID = 1";

				
			

Résultat d’affichage :

Avec ces modifications, la liste des achats sera affichée avec les dates au format d/m/Y. Par exemple :

Liste d'achats avec calculs mathématiques PHP

Liste achats formatée PHP

Pour formater la liste des achats d’un bien, vous pouvez structurer les informations dans une table HTML bien organisée et ajouter des styles CSS pour rendre l’affichage plus esthétique et lisible. Voici comment vous pourriez procéder pour un formatage complet de la liste des achats

Structure de la liste avec des classes pour le style :

Ajoutez des classes CSS à votre affichage pour un meilleur contrôle visuel, et assurez-vous que les données sont bien organisées.

				
					
 .affichage{
width: 90%;
margin: 20px auto;
padding: 10px;
}
.affichage h4{
margin-top: 3px;
padding-bottom: 3px;
}
.affichage ul{
margin-top: 15px;
padding-bottom: 7px;
border-bottom: 1px dashed #ccc;
}
.affichage strong{
margin-right: 15px;
}

				
			

Changez le fichier bien-detail :

				
					
 <li><strong><?= $dataAfficherAchat['dateFR'];?> : </strong> <?=$dataAfficherAchat['quantite'];?> * <?=$dataAfficherAchat['pu'];?>&euro; = <span class="depense"><?=$dataAfficherAchat['montant'];?> &euro; </span></li>

				
			

Résultat d’affichage :

Avec ces modifications, vos achats seront affichés dans une table structurée avec des colonnes pour la date d’achat, la quantité, le prix unitaire, et le montant total

Liste d'achats et calculs en PHP

Liste ventes bien avec PHP

Pour afficher la liste des ventes d’un bien, vous pouvez suivre une approche similaire à celle utilisée pour les achats. Il suffit d’adapter le code pour récupérer et afficher les données relatives aux ventes dans la table transaction où le typeID correspond à une vente.

Voici un exemple détaillé pour afficher la liste des ventes d’un bien :

Requête SQL pour récupérer les ventes :

  • Dans votre base de données, il est supposé que les ventes sont identifiées par un typeID spécifique (par exemple, typeID = 2 pour les ventes).
				
					
 <!--Affichage des ventes -->
<div class="affichage">
<h4>Liste des ventes</h4>
<ul>
<?php
$sql = "SELECT transactionID,quantite,pu,montant,DATE_FORMAT(dateTransaction,'%d/%m/%Y') As dateFR FROM transaction WHERE bienID = :bienID AND typeID = 2";
$req = $cnx->prepare($sql);
$req->execute(array(
':bienID' => $_GET['bienID']
));
$count = $req->rowCount();
if ($count <= 0) {
    echo '<em>Aucune vente pour le moment </em>';
} else {
    while ($dataAfficherVente = $req->fetch(PDO::FETCH_ASSOC)) {
        ?>
<li><strong><?= $dataAfficherVente['dateFR'];?> : </strong> <?=$dataAfficherVente['quantite'];?> * <?=$dataAfficherVente['pu'];?>&euro; = <span class="rentre"><?=$dataAfficherVente['montant'];?> &euro; </span></li>
<?php
    }
}
?>
</ul>
</div>

				
			

Résultat d’affichage :

Avec ces modifications, la liste des ventes pour un bien sera affichée dans une liste HTML formatée de manière propre:

Liste des ventes avec calculs détaillés
Infos : Si vous souhaitez ajouter des filtres ou des options de tri pour vos utilisateurs, vous pouvez étendre cette fonctionnalité.

Liste loyers bien avec PHP

Pour afficher la liste des loyers d’un bien, vous pouvez réutiliser le même principe que pour les achats et les ventes. Le loyer sera également stocké dans la table transaction, mais avec un typeID spécifique (par exemple, typeID = 3 pour les loyers).

Voici comment procéder pour afficher la liste des loyers d’un bien :

Requête SQL pour récupérer les loyers :

  • Vous allez filtrer les transactions avec typeID = 3 qui correspond aux loyers pour le bien sélectionné.

Code source :

				
					
 <!--Affichage des Loyer -->
<div class="affichage">
<h4>Liste des loyer</h4>
<ul>
<?php
$sql = "SELECT transactionID,quantite,pu,montant,DATE_FORMAT(dateTransaction,'%d/%m/%Y') As dateFR FROM transaction WHERE bienID = :bienID AND typeID = 3";
$req = $cnx->prepare($sql);
$req->execute(array(
':bienID' => $_GET['bienID']
));
$count = $req->rowCount();
if ($count <= 0) {
    echo '<em>Aucune loyer pour le moment </em>';
} else {
    while ($dataAfficherLoyer = $req->fetch(PDO::FETCH_ASSOC)) {
        ?>
<li><strong><?= $dataAfficherLoyer['dateFR'];?> : </strong> <span class="rentre"><?=$dataAfficherLoyer['montant'];?> &euro; </span></li>
<?php
    }
}
?> </ul>

				
			

Résultat d’affichage :

Avec ces modifications, la liste des loyers pour un bien sera affichée dans une liste HTML bien formatée

Liste des loyers avec dates en PHP
Étape
Afficher les Achats
Afficher les Ventes
Afficher les Loyers
Initialisation
Démarrez la session et incluez le fichier de connexion.
Démarrez la session et incluez le fichier de connexion.
Démarrez la session et incluez le fichier de connexion.
Récupération du bienID
Obtenez l’ID du bien à partir de l’URL ou d’un formulaire.
Obtenez l’ID du bien à partir de l’URL ou d’un formulaire.
Obtenez l’ID du bien à partir de l’URL ou d’un formulaire.
Requête SQL
Préparez et exécutez la requête pour les achats (typeID = 1).
Préparez et exécutez la requête pour les ventes (typeID = 2).
Préparez et exécutez la requête pour les loyers (typeID = 3).
Exécution de la requête
Préparez et exécutez la requête pour récupérer les achats.
Préparez et exécutez la requête pour récupérer les ventes.
Préparez et exécutez la requête pour récupérer les loyers.
Affichage des données
Affichez les achats dans un tableau avec les colonnes : Quantité, Prix Unitaire, Montant Total, Date d’Achat.
Affichez les ventes dans un tableau avec les colonnes : Quantité, Prix Unitaire, Montant Total, Date de Vente.
Affichez les loyers dans un tableau avec les colonnes : Quantité, Prix Unitaire, Montant Total, Date de Loyer.
Formattage de la date
Formatez la date avec DATE_FORMAT en jour/mois/année.
Formatez la date avec DATE_FORMAT en jour/mois/année.
Formatez la date avec DATE_FORMAT en jour/mois/année.
Message d’erreur
Affichez un message d’erreur si aucun achat n’est trouvé.
Affichez un message d’erreur si aucune vente n’est trouvée.
Affichez un message d’erreur si aucun loyer n’est trouvé.

Tableau 1 : les étapes pour afficher la liste des achats, ventes et loyers d’un bien, avec des détails

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment créer une page de détail d'un bien en PHP?
Pour créer une page de détail d’un bien en PHP, commencez par créer un fichier PHP, tel que detail-bien.php, qui va récupérer les détails du bien depuis la base de données en utilisant un identifiant passé via l’URL. Assurez-vous que les informations sont sécurisées en validant les entrées et en utilisant des requêtes préparées pour éviter les injections SQL. Affichez ensuite les détails du bien dans une structure HTML organisée.
Comment gérer les transactions de biens en PHP?
La gestion des transactions de biens en PHP implique la création d’une table transaction dans la base de données pour stocker les informations des transactions telles que la quantité, le prix unitaire, et la date. Utilisez PHP pour récupérer les données des formulaires d’achat, vente, et loyer, validez-les, puis insérez-les dans la table transaction. Chaque type de transaction peut être identifié par un typeID distinct.
Comment insérer un formulaire d'achat dans une page PHP?
Pour insérer un formulaire d’achat dans une page PHP, incluez un formulaire HTML dans votre page de détails du bien, où l’utilisateur peut entrer la quantité, le prix unitaire, et la date d’achat. Utilisez PHP pour traiter les données du formulaire, validez-les pour vous assurer qu’elles sont complètes et correctes, puis insérez les informations dans la table transaction de votre base de données.
Comment styliser un formulaire en PHP?
Styliser un formulaire en PHP nécessite d’utiliser CSS. Créez un fichier CSS externe ou incorporez des styles dans votre page PHP pour définir l’apparence du formulaire. Utilisez des propriétés CSS pour ajuster la largeur, la couleur, les bordures, et les marges des éléments du formulaire afin de rendre l’interface utilisateur attrayante et facile à utiliser.
Comment afficher des listes de transactions en PHP?
Pour afficher des listes de transactions en PHP, effectuez une requête SQL pour récupérer les enregistrements pertinents de la table transaction, en filtrant par bienID et typeID. Utilisez une boucle pour parcourir les résultats et afficher chaque transaction dans une liste ou un tableau HTML. Assurez-vous de formater les dates et les montants pour améliorer la lisibilité.

Conclusion

La création d’une page de détail des biens en PHP permet une gestion efficace des transactions immobilières. Quel autre aspect de la gestion des biens aimeriez-vous explorer davantage?

ÉTIQUETÉ : PHP8
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Créer et Gérer des Données Dynamiques avec PHP et MySQL

© Alphorm - Tous droits réservés