[PHP-MySQL] Pb à réaliser outil de 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 : [PHP-MySQL] Pb à réaliser outil de recherche

par Invité » 17 mars 2007, 21:58

La solution à mon problème m'a été fournie :
la clause WHERE champs_à_rechercher manquait.
A présent, ça fonctionne.

Merci à tous !

par Cyrano » 17 mars 2007, 20:31

Tout juste, et j'ajouterais deux choses :
-1- Séparer le PHP du reste;
-2- Créer une variable contenant la requête qui permettrait de l'afficher pour débuggage avant exécution;
Ce qui donne :
// Requête SQL
$sql = "SELECT * FROM objects LIKE '%". $recherche ."%'";
// Affichage de débuggage :
echo($sql)
// fin affichage débuggage
// Searching for term
$data = mysql_query($sql) or die("Erreur MySQL : ".mysql_error());

par @rthur » 17 mars 2007, 19:32

Ta variable $recherche est vide d'après le message d'erreur retourné par MySQL...

par jakkihm » 17 mars 2007, 17:49

En effet, voici le message qui apparaît désormais:
Erreur MySQL : Erreur de syntaxe près de 'LIKE '%%'' à la ligne 1

par @rthur » 17 mars 2007, 17:46

Bonjour,

Remplace:
// Searching for term
$data = mysql_query("SELECT * FROM objects LIKE '%$recherche%'"); 
par
// Searching for term
$data = mysql_query("SELECT * FROM objects LIKE '%$recherche%'") or die("Erreur MySQL : ".mysql_error()); 
ça devrait te permettre de détecter une erreur MySQL si l'exécution de la requête échoue...

[PHP-MySQL] Pb à réaliser outil de recherche

par jakkihm » 17 mars 2007, 17:23

Bonjour,

J'essaie de réaliser un petit outil de recherche qui permettrait de trouver certaines informations sur mon site en fonction de mots clés.

Je reçois toutefois les messages suivants sans pouvoir saisir mon erreur:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...
Voici une partie de mon code PHP:
<?php
// Variables initialization
$recherche = "";
$submitCheck = "1";
$envoyer = "";
$msg = "";

// Form processing
if ($submitCheck == "1") {
	if(isset ($_POST['envoyer'])) {
	$recherche = $_POST['recherche'];
	$submitCheck = $_POST['submitCheck'];
	$envoyer = $_POST['envoyer'];
	if(empty($_POST['recherche'])) {
		$msg.= "Veuillez entrer un critère de recherche.<br>";
	} // end if empty
	} // end if $_POST['envoyer']
} // end if submitCheck

// Database connection
include("connexionBdd.php");

// Input data filtering
$recherche = strtoupper($recherche);
$recherche = strip_tags($recherche);
$recherche = trim ($recherche);

// Searching for term
$data = mysql_query("SELECT * FROM objects LIKE '%$recherche%'");

// Counting the results - and if there isn't any provides a message
$resultsCount = mysql_num_rows($data);
if ($resultsCount == 0) {
$msg.= "Désolé, aucun résultat ne correspond à votre critère de recherche.<br>";
} // end if resultsCount

Then I display my results...
?>
Voici le code de mon formulaire:
<form name="rechForm" method="POST" action="rechercheForm.php">
Recherche: <input type="text" name="recherche" size="15">
<input type="hidden" name="submitCheck" value="1">
<input type="submit" name="envoyer" value="Go">
</form>
<?php echo $msg; ?>
Merci beaucoup !