Condition if grace a une date(Y) dans le contenu d'une bdd

Signaler
Messages postés
1
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
1 février 2010
-
Messages postés
27
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
13 février 2010
-
Bonjour,

Je ne suis pas habitué à poser des questions mais la je n'arrive pas à avancer :/
Je suis débutant en php et je suis entrain de me faire un petit panel me permettant de gérer ma comptabilité...

Mon problème est assez simple au fond, j'ai fait ma page me permettant de récupéré le total de toutes mes factures sur l'année courante, en l'occurrence donc 2010, en récupérant le total de chacune des factures dont l'état est 'réglée' et dont la date(Y) correspond a l'année courante.
jusque la pas de problème mais maintenant j'ai voulu faire les archives dans une boucle, donc récupéré le meme contenu mais dans une boucle avec un compteur $i++ :/

SQL();
$i = 0;
$req_archives = mysql_query ("SELECT net_a_payer,date FROM facture WHERE etat='".$etat_réglée."'")or die ('Erreur SQL ! '.$req_archives. mysql_error());
while ($donnees_archives = mysql_fetch_assoc($req_archives)){
$date_archives =  date ('Y') -$i;

Ma boucle et tout le reste fonctionne bien, mon seul problème reste de retirer la comptabilité des années précédente qui n'existe pas.

Je voudrais donc que tout sois lister normalement sauf si l'année n'as jamais était rentrer dans la bdd.

Du style :

Si $date_archives n'existe pas dans le champ 'date' alors ca n'affiche rien.

Sinon on continue la boucle

En résumé je galère sur mon if ....

Merci par avance

2 réponses

Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
45
Si j'ai bien compris ce que tu veux alors un simple ORDER BY suffit :

$req_archives = mysql_query ("SELECT net_a_payer,date FROM facture WHERE etat='".$etat_réglée."' ORDER BY date ASC")or die ('Erreur SQL ! '.$req_archives. mysql_error());

<?php
while ($donnees_archives = mysql_fetch_assoc($req_archives))
{
  echo $donnees_archives['date'].'
';
}
?>


Etant donnés que tu récupère que les factures payés dans ta requête sql, il ne te reste plus qu'à afficher par ordre croissant 'ASC' ou décroissant 'DESC'
______________________________________________________________________
Messages postés
27
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
13 février 2010

Bonjour,

Je ne sais pas si j'ai bien compris non plus, si tu ne veux afficher que les lignes qui contiennent une date dans $donnees_archives['date'] un simple if fait l'affaire. Après tu peux optimiser en fonction de ce que tu affiche réellement sur ta page. Je pense que tu as simplifié pour l'exemple.

<?php
while ($donnees_archives = mysql_fetch_assoc($req_archives))
{
   if (!empty($donnees_archives['date'])) {
        echo $donnees_archives['date'].'
';
    }
}
?>