PHP

Créer un moteur de recherche et une pagination

Non Résolu

Salut à tous !


J'aimerais vous demander une aide qui m'est urgente.

En fait, j'ai suivi le tuto de PrimFX sur la création de forum (le Tuto #4) et j'ai fait exactement comme il l'a fait c'est-à-dire le code de la page forum_topic.php qui affiche les topics. Maintenant mon soucis est que j'ai du mal à insérer le code PHP du formulaire de recherche et celui de la pagination dans le code de la page forum_topic.php. C'est pour permettre aux utilisateurs de faire des recherches de topics et d'avoir plusieurs pages comme l'a fait PrimFX sur le forum c'est-à-dire avoir la possibilité de faire des recherches librement dans les catégories et sous-catégories.

Un peu comme ceci https://www.primfx.com/forum/programmation/ ; Le visiteur peut faire des recherches dans catégorie PROGRAMMATION comme dans LES SOUS-CATEGORIES affichées en bas, avec le même moteur de recherche.

MERCI DE M'AIDER 🙏


Voici mon code:


forum_topic.php (pour le PHP)


<meta charset="utf-8" />
<?php session_start();
include '../include/menunavigation.php';
include 'includes/database.php';
include 'php/functions.php' ;
global $db;
 
// Récupération des topics
// $topics = $db->query('SELECT * FROM f_topics ORDER BY id DESC');
 
if(isset($_GET['categorie']) AND !empty($_GET['categorie']))
{
  $get_categorie = htmlspecialchars($_GET['categorie']);
 
  $categories = array();
  $req_categories = $db->query('SELECT * FROM f_categories');
 
  while ($c = $req_categories->fetch()) {
    array_push($categories, array($c['id'], url_custom_encode($c['nom'])));
  }
 
  var_dump($categories);
 
  if (in_array($get_categorie, $categories)) {
    var_dump("OK");
  }
 
  // $id_categorie = 
 
  if(isset($_GET['souscategorie']) AND !empty($_GET['souscategorie']))
  {
    $get_souscategorie = htmlspecialchars($_GET['souscategorie']);
    $id_souscat = $db->prepare('SELECT id FROM f_souscategories WHERE nom = ?');
    $id_souscat->execute(array($get_souscategorie));
  }
 
  $req = "SELECT * FROM f_topics 
      LEFT JOIN f_topics_categories ON f_topics.id = f_topics_categories.id_topic 
      LEFT JOIN f_categories ON f_topics_categories.id_categorie = f_categories.id 
      LEFT JOIN f_souscategories ON f_topics_categories.id_souscategorie = f_souscategories.id 
      WHERE f_categories.id = ?";
 
  if($get_souscategorie)
  {
    $req .= " AND f_souscategories.id = ?";
    $exec_array = array($id_categorie,$id_souscategorie);
  }
  else
  {
    $exec_array = array($id_categorie);
  }
 
  $topics = $db->prepare($req);
 
  $topics->execute($exec_array);
}
else
{
  ?>
  <head>
  <link rel="stylesheet" href="../include/menunavigation.css" />
  </head>
  <?php
  die('Erreur: Aucune catégorie sélectionné !');
}
 
require('views/forum_topic.view.php');
?>



forum_topic.view.php (pour l'HTML)



<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/forum_topic.view.css" />
<link rel="stylesheet" href="../include/menunavigation.css" />
<title>Titre</title>
</head>
<body>
<form method="GET" action=" ">

          <input type="search" name="q" placeholder="Recherche">
    <input type="submit" value="Recherche">

</form>
</body>
</html>
610 vues
13 juillet 2020 à 17:02 (Édité)
Cette pub permet au site de vivre ...

1 commentaire

Hello @Beaudelaire,


Pour créer une barre de recherche fonctionnelle, je te conseille la formation "Créer son site" du chapitre "Créer une barre de recherche" 😉

Pour le système de pagination, as-tu regarder cet article de Boris ? 🤔

Cette pub permet au site de vivre ...