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

ZeRoPsyrus Messages postés 1 Date d'inscription jeudi 6 mars 2008 Statut Membre Dernière intervention 1 février 2010 - 1 févr. 2010 à 13:02
Gr3g69 Messages postés 27 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 13 février 2010 - 6 févr. 2010 à 17:13
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

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
3 févr. 2010 à 19:42
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'
______________________________________________________________________
0
Gr3g69 Messages postés 27 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 13 février 2010
6 févr. 2010 à 17:13
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'].'
';
    }
}
?>
0
Rejoignez-nous