Si recherche par mois et année, nom du produit ne fonctionne pas

Signaler
-
 Znth -
Bonjour,

J'ai une page internet avec la quelle j'ai fais une fonction de recherche par nom de produit, mois et année, pour afficher par exemple un certain produit mais seulement ceux expirant en mai 2022 par exemple.

Tout en bas de ma page j'ai une petite imprimante qui me permet de faire l'impression en pdf, pour avoir ma page en pdf donc imaginons que je fasse une recherche pour tous les produits expirant en mai 2022 et que par exemple j'en ai 5, en appuyant sur ce bouton j'aurais mes 5 produit mais en formats pdf qui est très utile pour notre entreprise.

Le problème c'est que j'ai fais des requêtes et avec ces requêtes, tout fonctionne excepté le fais que : si par exemple je met le produit "MSP" de "mai" et d'année "2022" et que je vais sur mon pdf, l'impression pdf va me mettre "tous les produits" de "mai" "2022". Donc en gros, à chaque fois que je renseigne un mois ou une année, mon nom de produit ne rentre plus en compte, donc je dois juste avoir un petit problème dans une de mes requêtes mais je n'arrive pas à voir où :/

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();
			}

1 réponse

Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659
Bonjour,

Je t'ai déjà donné du code et des indications à suivre dans ta question précédente ....
Commence donc par repartir de ce que je t'ai donné et applique les conseils (consignes ! ) donnés dans les liens que je t'ai fourni .. et ça devrait aller mieux.
Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 > Znth
Actuellement ton code prend en compte soit la date soit le produit mais pas les deux ensembles...
Il n'y a pas de solution miracle à part et écrire correctement le code.
Et en te servant de ce que je t'ai déjà donné ça devrait être relativement rapide.
>
Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

J'ai oublié de le copier coller mais j'avais modifié ça :

if ($_GET['moisSelec'] == "all" AND $_GET['annee'] == "ALL" ){
				$stmt = $pdo->prepare('SELECT * from licenceseset ORDER BY dateExpiration ASC');
				$stmt->execute();
				$resu=$stmt->fetchALL();
			}
>
Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Ma fonction "recherche" directement sur ma page fonctionne parfaitement avec ces requêtes, mais comme j'écris pas mot pour mot et que je reformule un peu autrement dans mon pdf, la recherche par nom de produit ne fonctionne pas si je met un mois ou une année et je sais pas pourquoi
Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021
3 659 > Znth
Parce que c'est elle qui a écrit ton code actuellement si tu rajoutes en plus du mot, une année ou un mois, tu as variable résu est écrasée...
D'où l'importance, de réécrire ton code...
>
Messages postés
33221
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 août 2021

Ah oui ok je vois, il faut que je vois pour le changer..