Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour à tous,
Je suis en train de créer la barre de recherche afin que l'utilisateur effectue une recherche sur plusieurs établissements scolaires.
J'ai suivi ce tuto de Sitedudev sur YouTube afin de créer la barre de recherche. En suivant le tuto j'ai réussi à afficher les résultats les noms d'établissements scolaires dans la page resultats.php.
Lorsque l'utilisateur effectue une recherche sur l'un d'établissement scolaire dans la barre de recherche, il sera redirigé vers une page resultats.php contenant les résultats avec plusieurs liens qui s'affichent.
Je voudrais savoir comment il faut afficher les résultats des noms établissements scolaires avec plusieurs liens dans la page resultats.php ?
Est-ce que c'est possible de le faire avec la méthode de tuto ?
Car j'ai créé les pages qui contiennent les informations sur plusieurs établissements scolaires.
Pour l'instant j'ai essayé d'afficher les résultats avec plusieurs liens avec le code que j'ai créé, mais ça m'affiche les double résultats :
<?php
session_start();
include("connexionDB.php");
$result = "";
$data = "";
if(isset($_GET['contenu'])){
$valid = true;
$contenu = (string) trim($_GET['contenu']);
if(empty($contenu)){
$valid = false;
$message_er = "Mettre un recherche";
}
if($valid){
$req_search = $DB->query("SELECT id, title
FROM recherche
WHERE title LIKE ?
ORDER BY id, title
LIMIT 100",
array($contenu . "%"));
$req_search = $req_search->fetchAll();
}
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Resultats</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/resultats-1.css">
</head>
<body><div id="home">
<div class="container" style="margin-top: 140px;">
<div class="row justify-content-md-center">
<div class="col-sm-12 col-md-8 col-lg-6">
<h1 style="text-align: center;">Resultats de la récherche</h1>
<?php
if(isset($message_er)){
echo $message_er;
}
if(isset($_GET['contenu']) && $valid){
if(count($req_search) == 0){
echo "Aucun resultat";
}
foreach ($req_search as $rs) {
?><div class="resultrow"><a href='lycee-comercial.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
?><div class="resultrow"><a href='lycee-technique.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
/*$result = $result .'<div class="search-result"><a href="http://resultats.php?id='.$data["id"].'">'.$data['title'].'</a></div>';*/
}
}
?>
</div>
</div>
</div>
</div>
</body>
Voici les codes des sources du fichier :
accueil-2.php
<?php
session_start();
include("connexionDB.php");
if(!empty($_POST)){
extract($_POST);
$valid = true;
if(isset($_POST['search'])){
$contenu = (string) trim($contenu);
if(empty($contenu)){
$valid = false;
$message_er = "Mettre un recherche";
}
if($valid){
$req_search = $DB->query("SELECT id, title
FROM recherche
WHERE title LIKE ?
ORDER BY id, title
LIMIT 100",
array($contenu . "%"));
$req_search = $req_search->fetchAll();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!--Bootstrap CSS-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<!--CSS-->
<link rel="stylesheet" type="text/css" href="css/styles.css">
<title>Accueil</title>
</head>
<body><div class="frame">
<div class="text-2">
<h1 class="text-15"><strong>Rechercher un établissement</strong></h1>
</div>
<strong><hr class="news1"></strong>
<div class="search">
<form method = "get" action="resultats.php">
<div class="form-group" style="display: flex; justify-content: center;">
<input class="form-control" value="<?php if(isset($contenu)){echo $contenu;}?>" name="contenu" type="text" placeholder="Lycée, collège, etc.." />
<input type="submit" style="margin-left: 15px;" class="btn btn-primary" value="Rechercher"/>
</div>
</form>
<?php
if(isset($message_er)){
echo $message_er;
}
if(isset($_POST['search']) && $valid){
if(count($req_search) == 0){
echo "Aucun resultat";
}
foreach ($req_search as $rs) {
echo"<div style='color: black'>" . $rs['id'] . " " . $rs['title'] . "</div><br>";
}
}
?>
</div>
</div>
</body>
</html>
resultats.php
<?php
session_start();
include("connexionDB.php");
$result = "";
$data = "";
if(isset($_GET['contenu'])){
$valid = true;
$contenu = (string) trim($_GET['contenu']);
if(empty($contenu)){
$valid = false;
$message_er = "Mettre un recherche";
}
if($valid){
$req_search = $DB->query("SELECT id, titre
FROM recherche
WHERE title LIKE ?
ORDER BY id, title
LIMIT 100",
array($contenu . "%"));
$req_search = $req_search->fetchAll();
}
}
if(!empty($_POST)){
extract($_POST);
$valid = true;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Resultats</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/resultats-1.css">
</head>
<body><div id="home">
<div class="container" style="margin-top: 140px;">
<div class="row justify-content-md-center">
<div class="col-sm-12 col-md-8 col-lg-6">
<h1 style="text-align: center;">Resultats de la récherche</h1>
<?php
if(isset($message_er)){
echo $message_er;
}
if(isset($_GET['contenu']) && $valid){
if(count($req_search) == 0){
echo "Aucun resultat";
}
foreach ($req_search as $rs) {
?><div class="resultrow"><a href='lycee-comercial.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
?><div class="resultrow"><a href='lycee-technique.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
/*$result = $result .'<div class="search-result"><a href="http://resultats.php?id='.$data["id"].'">'.$data['title'].'</a></div>';*/
}
}
?>
</div>
</div>
</div>
</div>
</body>
</html>
Merci d'avance pour vos réponses.
Re @Space001,
Ce que je voulais faire c'est afficher les résultats avec des liens afin que l'utilisateur puisse cliquer sur le lien pour consulter les informations sur l'un d'établissement scolaire qu'il recherche.
Par exemple lorsque l'utilisateur recherche "Lycée Technique" et dans la page resultats.php je veux afficher "Lycée Technique" avec un lien afin qu'il se redirige vers la page lycee-technique.php où il pourrait consulter les informations sur l'établissement Lycée Technique.
J'ai déjà résolu le problème avec l'aide de cette réponse.
Pour afficher les résultats des recherches avec un lien, il faut d'abord créer une colonne page_name et dans cette colonne j'ai stocker le nom de la page par exemple "lycee-technique.php."
Ensuite j'ai affiché les résultats des recherches avec liens à l'aide ce code :
echo "<a href='../pages/{$rs['page_name']}'><h3>{$rs['title']}</h3></a>";
Je te remercie pour ta réponse
Re @Epeny,
Pour faire une barre de recherche et afficher les résultats, ce n'est pas compliqué 😁
Je t'invite à consulter cet article de formations 😉
Bonjour @Space001,
Je m'excuse de te répondre en retard, car mon compte a été bloqué pendant une semaine.
J'ai modifié le sujet de topic, je souhaite afficher les établissements scolaires avec plusieurs liens lorsque l'utilisateur sera redirigé vers la page resultats.php après avoir effectué une recherche sur l'un d'établissement scolaire dans la barre de recherche.
Je souhaite faire une barre de recherche par exemple comme celui de Google où lorsqu'on effectue une recherche et en cliquant sur le bouton rechercher il y a des résultats de recherche qui sont affichés avec plusieurs liens.
J'ai essayé d'afficher les résultats avec plusieurs liens avec ce code, mais les noms d'établissements scolaires s'affichent deux fois avec liens :
<?php
if(isset($message_er)){
echo $message_er;
}
if(isset($_GET['contenu']) && $valid){
if(count($req_search) == 0){
echo "Aucun resultat";
}
foreach ($req_search as $rs) {
?><div class="resultrow"><a href='lycee-comercial.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
?><div class="resultrow"><a href=' lycee-technique.php?id=<?= $rs['id'] ?>'><?= $rs['title'] ?></a></div><br><?php
/*$result = $result .'<div class="search-result"><a href="http://resultats.php?id='.$data["id"].'">'.$data['title'].'</a></div>';*/
}
}
?>
Bonsoir @Epeny,
En résumé tu souhaiterais qu'au lieu de campus.php
le lien soit centre-metier.php
?
Si c'est le cas, remplace cette ligne de ton fichier resulats.php
:
<div class="resultrow"><a href='campus.php?id=<?= $rs['id'] ?>'><?= $rs['titre'] ?></a></div>
par :
<div class="resultrow"><a href='centre-metier.php?id=<?= $rs['id'] ?>'><?= $rs['titre'] ?></a></div>
C'est aussi simple que ça 👌