Problème de barre de recherche php / requêtes SQL

JIM -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai une page internet qui contient une barre de recherche avec trois champs, les noms de produits, le mois et l'année. Ce qui permet par exemple de trouver facilement un produit en janvier 2020.

Le problème c'est que en fin de chaque recherche j'ai un petit icon permettant d'imprimer en PDF la page actuelle avec la recherche effectué. et quand j'imprime en pdf, le mois que j'ai sélectionné est bon, l'année et bonne, mais le nom de produit ne fonctionne pas.

Pour mieux me faire comprendre prenons un exemple.
Imaginons que je renseigne en nom de produit : NOD32, en mois : janvier et en année : 2020. Sur ma page j'aurais toutes mes infos bien triées et fonctionnelles mais si j'appuie sur l'impression en pdf, ça va me donner tous les produits (et pas seulement le NOD32 comme demandé) en janvier 2020 :/

Voici mon code avec mes requêtes me permettant le fonctionnement du mois et de l'année, je dois donc avoir un problème avec ma requête du nom de produit mais je n'arrive pas à savoir ce qu'il ne va pas :/

if(isset($_GET['nomProduit']) AND $_GET['nomProduit']!="tous"){
				$stmt = $pdo->prepare('SELECT * from licenceseset WHERE nomProduit LIKE"%'.$_GET['nomProduit'].'%" ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

			if ($_GET['moisSelec'] != "all" AND $_GET['annee'] == "ALL" ){
				$stmt = $pdo->prepare('SELECT * from licenceseset WHERE MONTH(dateExpiration) = '.$_GET["moisSelec"].' ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

			if ($_GET['moisSelec'] != "all" AND $_GET['annee'] != "ALL" ){
				$stmt = $pdo->prepare('SELECT * from licenceseset WHERE MONTH(dateExpiration) = '.$_GET["moisSelec"].' AND YEAR(dateExpiration) = '.$_GET["annee"].' ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

			if ($_GET['moisSelec'] == "all" AND $_GET['annee'] != "ALL" ){
				$stmt = $pdo->prepare('SELECT * from licenceseset WHERE YEAR(dateExpiration) = '.$_GET["annee"].' ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}

			if ($_GET['moisSelec'] == "all" AND $_GET['annee'] == "ALL" ){
				$stmt = $pdo->prepare('SELECT * from licenceseset ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
Il faut faire une seule requête avec les trois critères et non pas une requête pour chaque critère
0
JIM
 
Et comment je peux faire ça ? je m'y connais pas trop en requête :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > JIM
 
0
JIM > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Mais là c'est pour une autre page, mon ORDER BY fonctionne désormais, là c'est pour mon pdf
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > JIM
 
C'est exactement la même chose c'est d'ailleurs comme ça que j'ai retrouvé la discussion recherchons simplement les requêtes que tu avais posté à l'époque .
Je ne vais donc pas remettre ici les mêmes réponses que je t'avais déjà donné.
Si tu ne veux pas en tenir compte dis-le-moi tout de suite et je passe à autre chose et te laisse te débrouiller.
0
JIM > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Désolé mais tu me demandes de refaire tout le pdo alors que ce n'est pas moi qui l'ai fais et comme je débute je ne sais pas le faire...

J'ai essayé d'appliquer ce que tu m'as donné mais je ne comprenais rien et à pars tout faire buguer ça n'a rien changé d'autres :(

Désolé
0