Rendre comme liens les résultats d'une BDD pris avec PHP

Rendre comme liens les résultats d'une BDD pris avec PHP - PHP - Programmation

Marsh Posté le 17-02-2014 à 11:37:09    

Bonjour.
J'ai effectué un moteur de recherche avec une BDD contenant 3 champs (id, nom et description) ainsi que 4 pages (search.php, bdd.php, function.php et details_hotels.php). Après clic sur le bouton rechercher, les résultats s'affichent correctement mais j'aimerai que ces résultats s'affichent comme des liens qui renvoient vers des pages respectives contenant les détails de chaque resultat trouvé.
 
search.php a comme code:
 
 
<?php
include ('bdd.php');
include ('function.php');
?>
 
<form action="search.php" method="post">
    <strong>Votre recherche</strong><br/>
    <input type="text" name="search"><br/><br/>
    <input type="submit" value="chercher" name="submit">
</form>
<?php
 if(isset($_POST['submit']))
 {
  $search=mysql_real_escape_string(htmlentities(trim($_POST['search'])));
  if(empty($search)) { $erreur[]="Veuillez saisir un mot clé";}
  else if(strlen($search)<2) {$erreur[]="Veuillez saisir un mot clé de plus de 3 caractères";}
  if(empty($erreur)){ resultat_recherche($search);}
  else { foreach($erreur as $erreurs){ echo $erreurs."<br>";}}
 }
?>
 
---------------------------------------------------------------------------------------
bdd.php:
 
<?php
$connect=mysql_connect('localhost','root','') or die('Impossible de se connecter a la BDD');
mysql_select_db('kinadresses');
?>
 
---------------------------------------------------------------------------------
function.php
 
<?php
include ('bdd.php');
function resultat_recherche($search)
{
 $ou="";
 $search=preg_split('/[\s]+/',$search);
 $total_resultat=count($search);
 foreach ($search as $key=>$searches)
 {
  $ou.="nom LIKE '%$searches%'";
  if($key !=($total_resultat-1))
  {
   $ou.=" AND ";
   
   }
   }
   
   $query=mysql_query("SELECT *FROM adresses WHERE $ou" );
   $rows=mysql_num_rows($query);
   if($rows){
    while($row=mysql_fetch_assoc($query))
    {
     echo $row['nom']."<br/><strong>".$row['description']."<strong>";
     }
     
     
    }else echo "Pas de resultat pour la recherche" ."$searches";
 
}
?>
 
-------------------------------------------------------------------------------------------------------
La dernière page contient les détails de chaque adresse.
 
Merci de m'aider.

Reply

Marsh Posté le 17-02-2014 à 11:37:09   

Reply

Marsh Posté le 17-02-2014 à 11:38:35    

MA BDD EST LA SUIVANTE:
 
 
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le : Lun 17 Février 2014 à 10:08
-- Version du serveur: 5.5.16
-- Version de PHP: 5.3.8
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
 
 
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
 
--
-- Base de données: `kinadresses`
--
 
-- --------------------------------------------------------
 
--
-- Structure de la table `adresses`
--
 
CREATE TABLE IF NOT EXISTS `adresses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `description` varchar(3000) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
 
--
-- Contenu de la table `adresses`
--
 
INSERT INTO `adresses` (`id`, `nom`, `description`) VALUES
(1, 'Grand Hotel', 'Surplombant le fleuve Congo dans le Quartier résidentiel du centre ville, le Grand Hotel Kinshasa  est le plus grand complexe de la République Démocratique du Congo. Situé près des Ambassades et des résidences des Nations Unies, notre Hotel conjugue à merveille  la tradition Hotelière, confort, modernité et hospitalité africaine. Nous serons heureux de vous accueillir dans nos 204 chambres, spacieuses et confortable.  Fier de son expériences, le Grand Hotel vous offre un service 5 étoiles unique dans le pays.  Découvrez nos restaurants, nos lieux de détentes et nos salles d''exception, idéales pour la fete  et congrès. Entretenez votre forme dans notre centre sportif aux formes européennes... Profitez de nos terrains de sport, de notre piscine avec terrasse... Et flanez dans notre galerie marchande.  Auprès de nous, vous passerez un séjour inoubliable.  Nous acceptons Visa, Master Card et Pro-Credit.'),
(2, 'Buzoba', 'Longwa dit'),
(3, 'Hotel Venus', 'Situé dans le quartier résidentiel et sécurisé de la Gombe, à 5 minutes du centre des affaires de Kinshasa, le Vénus Hôtel vous offre un accueil chaleureux, un décor raffiné, une ambiance détendue, signes de la véritable élégance. Votre quête du confort, de la sécurité, de la tranquillité ainsi que d''un service satisfaisant pour un bon rapport qualité prix à Kinshasa vous conduira certainement au Venus Hôtel.  Chambres et suites, Jardins et salons, piscine et patio se donnent la réplique dans une sérénité bienfaisante.  Les plus du Vénus Hôtel:  - ATM Machine (VISA , MasterCard, Cartes Bancaires locales)  - Salle de sport équipée de machines cardio-training - Parking sécurisé et gratuit - Business center - Pharmacie - Salon de Coiffure - Service Western Union');
 
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Reply

Marsh Posté le 18-02-2014 à 12:36:41    

sur chaque résultat, tu mets une lien hypertexte du genre :
echo "<a href=\"VoirNom.php?idnom=".$row['id']."\">".$row['nom']."<br/><strong>".$row['description']."<strong></a>";
 
To script VoirNom.php va récupérer via $_GET['idnom'] la valeur de l'id et t'affiche le détail relatif à l'id en conséquence...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 18-02-2014 à 18:30:02    

Merci rufo.
J'ai essayé. Mais je me demande où mettre $_GET parce que la page contenant les informations de chaque résultat obtenu après recherche contient déjà un formulaire qui utilise la méthode POST.

Reply

Marsh Posté le 18-02-2014 à 19:38:30    

Tu as déjà la page, c'est details_hotels.php
Ton lien doit pointer vers cette page avec l'id de l'hôtel comme argument, mais si cette page fonctionne déjà, tu dois savoir comment créer le lien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed