Aucun resultat pour ma recherche

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 : Aucun resultat pour ma recherche

par animithra » 07 juin 2008, 16:30

Si ton problème est réglé, tu devrais penser à tagger en résolu ^^

par Invité » 07 juin 2008, 16:23

probleme regle, j ai mis mon encodage en set binary et dans ma recherche j'ai mis BINARY aussi

par Fredy » 04 juin 2008, 11:36

Je pense que le probleme vient de l'encodage, parce que j'ai insere mes 2 lignes en arabe, et quand j'ai ajoute une ligne dans la base de donnee en francais, ca m'a donne un resultat.

Comment peut on faire notre recherche dans une base de donnee multilangues??

par Invité » 03 juin 2008, 16:35

Euh... pas bien compris là... la valeur de $KeyWord est donc correcte maintenant et ta requête s'exécute bien, mais il ne te retourne pas de résultat ?

Est ce que dans ta base les valeurs du champ adresse ont été htmlspecialcharés ? parce que si tu compare une valeur où les caractères spéciaux ont été convertis en entités html, à une valeur en base pour laquelle ca n'a pas été fait, il n'y aura évidement pas de concordance. Il faut soit le faire pour les deux, soit pour aucun :)
l insertion dans la BD est sans htmlentities ou bien specialchars....

j'ai change mon post par:
$KeyWord = $_POST['KeyWord']; 
et mon code est le suivant:
<?php

$KeyWord = $_POST[KeyWord];

include ('../configure_file.php');

// connection à la DB
$link = mysql_connect ($host,$user,$pass);
// insetion des caracteres utf
mysql_query("SET CHARACTER SET 'utf8';", $link)or die('Erreur: '.mysql_error());
// selection de la DB
mysql_select_db($db) or die ('Erreur: '.mysql_error());

$select2 = "SELECT * FROM ma_table WHERE adresse LIKE '%".$KeyWord."%' ORDER by id DESC";


echo $select2. '<br>';

$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
$total2 = mysql_num_rows($result2);
  
// si on a récupéré un résultat on l'affiche.
if($total2) {
// on ouvre notre tableau pr afficher le coran
// on extrait les donnees
while ($row2 = mysql_fetch_array($result2)) {  
	$adresse = $row2['adresse'];

echo "$adresse<br>";
}
}
else echo 'aucun resultat pour ' .$KeyWord;

//on ferme la connexion
mysql_close();


?>

par Ryle » 02 juin 2008, 08:06

Euh... pas bien compris là... la valeur de $KeyWord est donc correcte maintenant et ta requête s'exécute bien, mais il ne te retourne pas de résultat ?

Est ce que dans ta base les valeurs du champ adresse ont été htmlspecialcharés ? parce que si tu compare une valeur où les caractères spéciaux ont été convertis en entités html, à une valeur en base pour laquelle ca n'a pas été fait, il n'y aura évidement pas de concordance. Il faut soit le faire pour les deux, soit pour aucun :)

par Fredy » 02 juin 2008, 06:08

Ca me retourne le mot a chercher, aufin ca donne un resultat null, meme si le terme que je cherche existe dans ma table.

par Ryle » 02 juin 2008, 00:03

Effectivement, j'avais loupé le
$KeyWord = AddSlashes (htmlspecialchars($_POST['KeyWord'])); 
Mais si $_POST['KeyWord'] est vide, ça changera pas grand chose... le problème vient d'ailleurs...

Probablement de l'absence de balise </form> à la fin de ton formulaire dans ta page form.php

par nass » 01 juin 2008, 21:24

perso je ferai comme ça

Code : Tout sélectionner

$select2 = "SELECT * FROM ma_table WHERE adresse LIKE '%".$KeyWord."%' ORDER BY id DESC";
:wink:

par Fredy » 01 juin 2008, 19:09

ca me retourne la meme chose:

SELECT * FROM ma_table WHERE adresse LIKE '%%' ORDER by id DESC

par Ryle » 01 juin 2008, 15:59

Et en sortant les variables des chaines et en mettant des apostrophes/guillemets autour de l'index appelé (puisqu'il s'agit d'une chaine de caractère et non d'une constante) ?
$select2 = "SELECT * FROM ma_table 
  WHERE adresse LIKE '%".$_POST['KeyWord']."%' 
  ORDER BY id DESC"; 
Une petite bizarerie par ailleurs, ton champ adresse fait 20 caractères en base, et l'input KeyWord est lui limité à 100... :-s

par Invité » 01 juin 2008, 15:14

J'ai essaye ainsi mais ca marche pas aussi:
$select2 = "SELECT * FROM ma_table WHERE adresse LIKE '%$_POST[KeyWord]%' ORDER by id DESC";

echo $select2;
qui donne comme resultat:

SELECT * FROM ma_table WHERE adresse LIKE '%%' ORDER by id DESC

par lux » 31 mai 2008, 17:27

Dans ta requète :
'%KeyWord%'
Plutot qqch comme :
'%".$KeyWord."%'
Vu que c'est la variable php que tu dois mettre dedans ... :oops:

Aucun resultat pour ma recherche

par Fredy » 31 mai 2008, 16:13

Bonjour,

J'ai mis un petit moteur de recherche avec base de donnee, afin de pratiquer la clause: WHERE, enfin ca me retourne aucun resultat, je pense que je me suis piege quelque part:

ma table:

CREATE TABLE `ma_table` (
  `id` int(11) NOT NULL auto_increment,
  `adresse` varchar(20) collate latin1_general_ci NOT NULL,
  `url` varchar(50) collate latin1_general_ci NOT NULL,
  `email` varchar(55) collate latin1_general_ci NOT NULL,
  `description` varchar(255) collate latin1_general_ci NOT NULL,
  `mots_cles` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

--
-- Contenu de la table `ma_table`
--

INSERT INTO `ma_table` (`id`, `adresse`, `url`, `email`, `description`, `mots_cles`) VALUES
(1, 'okito ok on iran', 'fsafas', 'fsfsf', 'asfg', 'gtrtew');

Form.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form name="Form" method="post" action="resultat.php">
<input type="text" name="KeyWord" size="30" maxlength="100" /><br />
<input type="submit" value="Go" name="Submitted" />

</body>
</html>
resultat.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>


<?php
include ('../configure_file.php');

$KeyWord = AddSlashes (htmlspecialchars($_POST['KeyWord']));



// connection à la DB
$link = mysql_connect ($host,$user,$pass);
// forcer l UTF
mysql_query("SET CHARACTER SET 'utf8';", $link)or die('Erreur: '.mysql_error());
// selection de la DB
mysql_select_db($db) or die ('Erreur: '.mysql_error());


// on selectionne les donnees de la DB pr avoir une page par page
$select2 = "SELECT * FROM ma_table WHERE adresse LIKE '%KeyWord%' ORDER by id DESC";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
$total2 = mysql_num_rows($result2);
  
// si on a récupéré un résultat on l'affiche.
if($total2) {
// on ouvre notre tableau pr afficher le coran
// on extrait les donnees
while ($row2 = mysql_fetch_array($result2)) {  
	$adresse = $row2['adresse'];

echo 'nbre ' .$total2;
echo $adresse;
}
}
else echo 'aucun resultat pour le mot "' .$KeyWord. '"';
?>