Moteur de recherche requete

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Moteur de recherche requete

Re: Moteur de recherche requete

par benW94 » 15 févr. 2015, 22:28

Autre probleme : le else ne fonctionne pas, c'est peut etre la condition du if qui n'est pas bonne. je vois pas ce que je devrais mettre a la place

Re: Moteur de recherche requete

par benW94 » 15 févr. 2015, 19:26

Ah c'est bon, j'ai enlevé le premier fetch, et dans la condition du if j'ai mit !empty($req)
et ca marche :)

Re: Moteur de recherche requete

par benW94 » 15 févr. 2015, 19:18

Merci tof ! ca marche mieux deja j'arriver a afficher le titre de l'annonce :)

Mais il doit y avoir une erreur dans ma boucle while, ca doit etre avec le fetch(), je crois car je l'ai écrit 2 fois.

Re: Moteur de recherche requete

par tof73 » 15 févr. 2015, 19:12

de mémoire :
$req = $bdd->prepare('SELECT * FROM description WHERE titre LIKE ? ORDER BY id_logement DESC');
$req->execute(array("%".$search."%"));

Moteur de recherche requete

par benW94 » 15 févr. 2015, 19:02

Hello,

Je souhaite réaliser un moteur de recherche sur mon site, une recherche par mot-clé, l'utilisateur rentre un mot ou une expression et le site lui retourne les annonces dont le titre ou le texte descriptif contient ce mot ou cette expression.

J'ai voulu utiliser des requêtes sql avec LIKE

Voila le code
<?php 

//Cherchons dans les différents titres et textes descriptifs s'il y a ce que cherche l'utilisateur
include("Modele/connexion-bdd.php");

$req = $bdd->prepare('SELECT * FROM description WHERE titre LIKE %?% ORDER BY id_logement DESC');
$req->execute(array($search));

$reponse = $req->fetch();

if (!empty($reponse))
{
	while ($reponse = $req->fetch())
	{
		//On renomme les variables
		$id_logement = $reponse['id_logement'];
		$id_membre = $reponse['id_membre'];
		$titre = $reponse['titre'];
		$texte = $reponse['texte'];
		$type = $reponse['type'];
		$capacite = $reponse['capacite'];
		$surface = $reponse['surface'];
		$photo = $reponse['photo1'];



		//On va chercher la région et le département associés au logement
		$req2 = $bdd->query('SELECT region, departement FROM localisation WHERE id_logement = ' . $id_logement);

		$donnees2 = $req2->fetch();

		$region = $donnees2['region'];
		$departement = $donnees2['departement'];

		//On va chercher le nombre de contraintes associées au logement
		$req3 = $bdd->query('SELECT * FROM contraintes WHERE id_logement = ' . $id_logement);

		$donnees3 = $req3->fetch();

		$nbcontraintes = 0;

		for ($i = 1; $i <= 5; $i++)
		{
			if (!empty($donnees3['contrainte' . $i]))
			{
				$nbcontraintes += 1;
			}
		}

		//On va chercher le nombre de services associés au logement
		$req4 = $bdd->query('SELECT * FROM services WHERE id_logement = ' . $id_logement);

		$donnees4 = $req4->fetch();

		$nbservices = 0;

		for ($j = 1; $j <= 5; $j++)
		{
			if (!empty($donnees4['service' . $j]))
			{
				$nbservices += 1;
			}
		}

	?>
<a class="accueil-publication-lien" href="index.php?page=annonce&logement=<?php echo $id_logement; ?>">
	<div class="accueil-publication-container">

		<div class="accueil-publication-photo" style="background: url('../Images/photos-annonce/<?php echo $photo; ?>') center no-repeat; background-size: cover;"></div>
		<div class="accueil-publication-infos">

			
			<h3 class="accueil-publication-titre"><?php echo $titre; ?> — <?php echo $type; ?></h3>
			
			<p class="accueil-publication-texte"><?php echo $texte; ?></p>
			<p class="accueil-publication-infos-sup">
				<ul>
					<li class="accueil-infos-sup"><?php echo $region; ?> — <?php echo $departement; ?></li>
					<li class="accueil-infos-sup">Surface : <?php echo $surface; ?>m2</li>
					<li class="accueil-infos-sup"><?php echo $capacite; ?> personne(s)</li>
					<li class="accueil-infos-sup"><?php echo $nbcontraintes; ?> contraintes</li>
					<li class="accueil-infos-sup"><?php echo $nbservices; ?> services</li>
				</ul>
			</p>

		</div>

	</div>
</a>
	<?php
	}
}
else 
{
?>
<p class="recherche-simple-message">Il n'y a pas de résultats pour cette recherche.</p>
<a class="recherche-retour-lien" href="index.php?page=recherche">Retourner à la recherche</a>
<?php
}	

?>
La variable $search contient ce qu'a rentré l'utilisateur dans le barre de recherche

Le problème est que le code est mal lu, ou mal écrit plutot, car il n'affiche absolument rien. :/

Est-ce que je m'y prends de la bonne facon avec la requete sql contenant le LIKE?
Qu'est ce qui ne vas pas dans mon code?

thx :)