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

Fermé
Znth - 5 mars 2021 à 12:19
 Znth - 5 mars 2021 à 14:02
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

jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 667
5 mars 2021 à 12:37
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.
0
Oui justement je devais faire une autre page du même style et du coup j'ai commencé à appliquer ce que tu m'avais envoyé et j'ai suivis des conseils mais avant de continuer cette page mon patron m'a demandé de terminer ce pdf par nom de produit qui a un petit soucis, donc je pensais que je pouvais trouver ce qui allait pas en vitesse pour retourner sur l'autre page et continuer avec les indications que tu m'avais envoyé.
0
jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 667 > Znth
5 mars 2021 à 13:28
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.
0
Znth > jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024
5 mars 2021 à 13:32
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();
			}
0
Znth > jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024
5 mars 2021 à 13:34
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
0
jordane45 Messages postés 38175 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 mai 2024 4 667 > Znth
5 mars 2021 à 13:47
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...
0