Php : Organiser les news selon le mois et l'année

Fermé
loutry - 27 août 2014 à 12:29
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 29 août 2014 à 13:28
Bonjour à tous,
je reviens vers vous aujourd'hui pour trouver des réponses à ma problématique.
Je vous explique,

j'ai une table nommée t_article avec en champ date_article. format Date (déjà est-ce que ça pour référencer selon les dates c'est bon ? Ou alors vaudrait mieux faire deux champs avec un le mois et l'autre l'année.

Sur ma page Index.php, j'aimerai faire un espèce d'affichage par mois.
C'est à dire que tous les articles d'avril soient dans la colonne avril, ceux de mai dans mai etc.

Pour faire appels aux articles, je ne vois pas comment faire.


$sqlarticle= "SELECT * FROM t_artcle [gros trou]";
$requetearticle = mysql_query( $sqlarticle, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );

J'aimerai un truc du genre

<ul>
<li>Avril -> tous mes articles</li>
<li>Mai -> tous mes articles</li>
<li>...
... </li>
</ul>

Je ne sais pas si j'ai été suffisamment clair ou explicite dans mon problème. Je vous remercie par avance pour votre aide.

Cordialement
A voir également:

5 réponses

Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
27 août 2014 à 13:25
while ($o=1) {
$sqlarticle= "SELECT * FROM t_artcle WHERE format([Date],'m')=".$i;
.....}

ou
$sqlarticle= "SELECT *,format([Date],'m') as mymonth, FROM t_artcle ";


pas sur de la syntaxe
1
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 27/08/2014 à 13:29
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
27 août 2014 à 13:20
c'est [gros trou] sans jeu de mots que tu cherches a combler?
0
Coucou Fallen,
merci pour ta réponse rapide.
Je t'avoue que j'ai un peu de mal encore avec le php.
Si tu pouvais encore m'aider sur un petit détail.

Donc la requête d'appel, je vois à peu près comment faire,
Mais comme tu affiches ça sur ta page stp ?

  
<?php
while ($requetearticle= mysql_fetch_array($resultarticle))
{
echo "$requetearticle[' ???']";
}
?>

Merci par avance pour ton aide
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 28/08/2014 à 10:54
<ul>
    <li>Avril -> tous mes articles</li>
    <li>Mai  -> tous mes articles</li>
    <li>...
          ... </li>
</ul>

tu as choisi un while sous sur les douze mois avec la requete 1 soit une nouvelle requete avec le fonction 2

requete 1
$mois = Array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet", "Août","Septembre", "Octobre", "Novembre","Décembre"); 
echo "<ul>";
for ($i=1,$i<13;$i++) {
   $sqlarticle= "SELECT * FROM t_artcle WHERE format([Date],'m')=".$i;
   $requetearticle= mysql_query( $sqlarticle, $cnx );
    echo "<li>".$mois[$i]."tous mes articles (".count($requetearticle).")<br>";
    $j=1;
while ($row = mysql_fetch_assoc($requetearticle)) {
 {
           echo $j++."-". $row ['titre']."<br>";
        }
 echo "</li>";
}

echo "</lu>";


http://fr2.php.net/manual/fr/function.mysql-query.php
0
Merci bcp de ta réponse très rapide et complète.
Je vais essayer tout ça dans la journée.

Encore merci :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rebonjour,
j'ai adapté ton code à ma page.


<h1>Bienvenue</h1>

<ul class="moisListing">
<?php
$mois = Array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");

for($i=1;$i<13;$i++) {
$sqltrame= "SELECT * FROM t_relance WHERE format([debut_relance],'m')=".$i;
$requetetrame= mysql_query( $sqltrame, $cnx );
echo "<li>".$mois[$i]." toutes mes trames (".count($requetetrame).")<br>";
$j=1;

while($row = mysql_fetch_assoc($requetetrame))
{
echo "lol".$j++."-".$row['titre_relance']."<br>";
}

echo "</li>";

}

?>

<div id="clear"></div>
</ul>

Dans ma table, j'ai on va dire 100 insertions de trames (article dans mon premier exemple)

Voilà ce qui m'apparait à l'écran


Janvier toutes mes trames (1)
Février toutes mes trames (1)
Mars toutes mes trames (1)
Avril toutes mes trames (1)
Mai toutes mes trames (1)
Juin toutes mes trames (1)
Juillet toutes mes trames (1)
Août toutes mes trames (1)
Septembre toutes mes trames (1)
Octobre toutes mes trames (1)
Novembre toutes mes trames (1)
Décembre toutes mes trames (1)


L'erreur viendrait d'où svp ?
ma table qui serait mal construite ? Si oui,
j'ai fait une construction classique avec

id_trame : int auto clé primo
titre_trame : Varchar
debut_trame : date classique

Merci par avance pour votre aide.
0
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié par Fallentree le 29/08/2014 à 13:31
SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');

http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

for($i=1;$i<13;$i++) {
   $sqltrame= "SELECT * FROM t_relance WHERE format([debut_relance],'%m')=".$i;
   $requetetrame= mysql_query( $sqltrame, $cnx );


Il manque un % pour le format de date
et peut etre la fonction format => DATE_FORMAT
0