Bonjour,

Cela fait déjà un petit moment que je suis dessus et je suis un peu perdu. J'ai un formulaire pour la recherche de mot clés sur un site.

J'utilise une fonction pour exécuter mes requêtes dont je fourni trois paramètres a l'appel de cette dernière. Je vous montre mon code :

Ma requête SQL

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
$fields = ['search' => $_POST['s']];
$sql = '	SELECT `marque`, `modele`, `img`
		FROM pc_portable
		WHERE marque LIKE "%:search%"
		OR modele LIKE "%:search%"
		OR cpu LIKE "%:search%"
		OR os LIKE "%:search%"
		OR description LIKE "%:search%" ';
 
			$result = Database::getInstance()->request($sql, $fields, true);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public function request($sql, $fields = false, $multiple = false)
		{
			try
			{
				$statement = $this->_PDOInstance->prepare($sql);
 
				if($fields)
				{
					foreach($fields as $key => $value)
					{
						if(is_int($value))
							$dataType = PDO::PARAM_INT;
						else if(is_bool($value))
							$dataType = PDO::PARAM_BOOL;
						else if(is_null($value))
							$dataType = PDO::PARAM_NULL;
						else
							$dataType = PDO::PARAM_STR;
 
						$statement->bindValue(':'.$key, $value, $dataType);
					}
				}
 
				if($statement->execute()){
					if($multiple)
						$result = $statement->fetchAll(PDO::FETCH_OBJ);
					else
						$result = $statement->fetch(PDO::FETCH_OBJ);
				}else{
					return false;
				}
				$statement->closeCursor();
 
				return $result;
			}
			catch(Exception $err)
			{
				exit($err->getMessage());
			}
		}

Mon problème est quand je fais un print_r de $result j'ai un tableau vide. Je sais que mon souci à un rappot avec mon tableau $field et ma fonction lorsque je bindValue (l'ajout de guillemet). Mais je ne sais vraiment pas comment le résoudre.

J'ai fait des recherches on parle de mettre les % directement dans mon tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 $fields = ['search' => "%".$_GET['s']."%"];
Mais rien n'y fais. J'aurai besoin d'aide s'il vous plait.

En vous remerciant par avance de l’intérêt que vous porterai à mon problème. Cordialement