Le code suivant est censé filtrer par année de publication les résultats de la requête suivante :
<?php $DATE_PUBLICATION= (iSset($_GET['date_publication']) ? $_GET['date_publication'] : null);
$select_livre = "SELECT L.TITRE AS titre, L.ID_LIVRE AS id_livre,
DATE_FORMAT(L.DATE_ACHAT,'%Y')AS date_achat,DATE_FORMAT(L.DATE_PUBLICATION,'%Y')AS date_publication,DATE_FORMAT(L.DATE_LECTURE,'%Y')AS date_lecture, L.miniatures AS miniatures,
ED.NOM_EDITEUR AS editeur,ED.ID_EDITEUR AS id_editeur,LIB.NOM_LIBRAIRIE AS librairie,LIB.ID_LIBRAIRIE AS id_librairie, L.RESUME AS resume, L.STATUT_LECTURE AS statut_lecture
FROM LIVRE L
INNER JOIN EDITEUR ED
ON ED.ID_EDITEUR = L.ID_EDITEUR
INNER JOIN LIBRAIRIE LIB
ON LIB.ID_LIBRAIRIE = L.ID_LIBRAIRIE";
if ( $DATE_PUBLICATION != null) {
$select_livre .= " WHERE DATE_FORMAT(L.DATE_PUBLICATION,'%Y')LIKE %'".$DATE_PUBLICATION."%'";
$resultat_livre = mysql_query($select_livre)or die('Erreur SQL !'.$select_livre.'<br>'.mysql_error());
?>
Mais le filtrage ne fonctionne pas (tous les résultats sont retournés). Cela vient-il du .= WHERE ? Merci de vos avis sur la question.
Pour ton WHERE en effet, j'aurais plutôt fait <?php"[...] LIKE '%"..$DATE_PUBLICATION."%' [...]"... =)
Requête avec fonction DATE_FORMAT
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.