Résultat dernier resultat d'un enregistrement

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Résultat dernier resultat d'un enregistrement

Message le Lun Juin 18, 2007 8:40

Bonjour,
j'aurais voulu savoir comment obtenir le dernier enregsitrement en faisant un mysql fetch row.

C'est à dire que j'ai des clients qui peuvent avoir 5 cotisations à payer comme 26 cotisations.
Pour chaque client, j'ai besoin de connaître la derniere ligne de l'enregistrement.

Sachant que ma requete de départ est

Code: Tout sélectionner
SELECT * FROM COTISATION WHERE num_cli = blabla


Je pars ensuite avec ça

Code: Tout sélectionner
while(($resultCotisation=mysql_fetch_row($req_cotisation))!=NULL)


Merci d'avance

ps : je ne veux pas d'un max dans ma requete vu que j'ai besoin quand même de tout mes enregistrements.


Bh@Mp0
WRInaute discret
WRInaute discret
 
Messages: 245
Inscription: 18 Jan 2005

Message le Lun Juin 18, 2007 8:54

C'est un problème de programmation "classique", pas un problème de PHP/MySQL.

En l'occurrence, dans ta boucle, il suffit de faire une copie de $row dans, par exemple, $oldrow. Une fois sorti de ta boucle, tu as $oldrow qui contient ton dernier enregistrement.

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 9:12

yep pas bête en sortant de la boucle j'aurais le dernier enregistrement.
Je vais tester

ADIDASman
WRInaute discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

Message le Lun Juin 18, 2007 9:41

Pourquoi récupérer tous les enregistrements de ta base si seul le dernier t'intéresse ?

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 9:44

parce que c'est juste pour ce test là...aprés j'ai besoin de tout pour les autres tests.

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 9:46

Bh@Mp0 a écrit:C'est un problème de programmation "classique", pas un problème de PHP/MySQL.

En l'occurrence, dans ta boucle, il suffit de faire une copie de $row dans, par exemple, $oldrow. Une fois sorti de ta boucle, tu as $oldrow qui contient ton dernier enregistrement.


ça fonctionne N-I-K-E-L ! par contre comment tu fais pour recupérer l'avant dernier maintenant :oops:

ADIDASman
WRInaute discret
WRInaute discret
 
Messages: 106
Inscription: 17 Avr 2004

Message le Lun Juin 18, 2007 9:46

jiojioforever a écrit:parce que c'est juste pour ce test là...aprés j'ai besoin de tout pour les autres tests.

OK. Je comprenais pas ;)


Bh@Mp0
WRInaute discret
WRInaute discret
 
Messages: 245
Inscription: 18 Jan 2005

Message le Lun Juin 18, 2007 10:24

jiojioforever a écrit:
Bh@Mp0 a écrit:C'est un problème de programmation "classique", pas un problème de PHP/MySQL.

En l'occurrence, dans ta boucle, il suffit de faire une copie de $row dans, par exemple, $oldrow. Une fois sorti de ta boucle, tu as $oldrow qui contient ton dernier enregistrement.


ça fonctionne N-I-K-E-L ! par contre comment tu fais pour recupérer l'avant dernier maintenant :oops:

Rah mais t'en fais exprès ?

Dans ta boucle, avant la redéfinition de ton $oldrow, tu copies $oldrow dans un $oldoldrow, et, à la sortie de la boucle, t'auras ton dernier dans $oldrow et l'avant-dernier dans $oldoldrow ...

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 10:32

bah nan ? :oops: oldrow aura la même valeur que oldoldrow à la sortie si tu lui attribue la valeur de oldrow justement

Code: Tout sélectionner
while(($resultCotisation=mysql_fetch_row($req_cotisation))!=NULL)
             {      
            $oldrow = $resultCotisation[2]; // dernier cotisation (servira pour savoir si date = 0000-00-00)
             if ($oldrow <> '0000-00-00')
                {         
                    
               // Si date DE < année cotisation ET année cotisation = année choisie
                  if ($annee_DE < (substr($resultCotisation[2],0,4)) AND (substr($resultCotisation[2],0,4)== $annee))
                     {       
                              switch ($nb_mois_periodicite)
                            {
                                case 12: //ANNUELLE
                                              for($i=0; $i<30 ; $i++)
                                                       {
                                                 paiement3();               
                                              } 
                                             break;
                                case 6: // SEMESTRIELLE
                                      for($i=6; $i<13 ; $i+=6)
                                                 {
                                         for($k=0; $k<30 ; $k++)
                                            {
                                                 paiement3bis();
                                               }   
                                       }   
                                  break;
                                   case 4: // TRIMESTRIELLE
                                     for($i=4; $i<13 ; $i+=4)
                                                  {
                                        for($k=0; $k<30 ; $k++)
                                            {
                                                     paiement3bis();
                                             }               
                                          }      
                                  break;
                              case 1:// MENSUELLE
                                     for($k=0; $k<30 ; $k++)
                                               {
                                        for($i=12; $i<13 ; $i++)
                                           {
                                                    paiement3bis();
                                               }                   
                                      }   
                                 break;
                             }
                         }                          
                    }
               }

KMAMa2f
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 7 Juin 2006

Message le Lun Juin 18, 2007 13:12

Un tableau ne peut pas te convenir?

$Tab[$i] = $resultCotisation[2];
$i++;

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 13:14

hum nan ça refait de manip ensuite pour sortir les résultats :s j'ai pigé le systéme de Bh@Mp0
donc ça roule pour le moment ;) !

KMAMa2f
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 29
Inscription: 7 Juin 2006

Message le Lun Juin 18, 2007 13:35

Ok, des manips assez simple car si tu met sa ds ta boucle while, $i est ton dernier resultat, $i-1 l avant dernier, etc..

++


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Lun Juin 18, 2007 13:51

en meme temps, une requete inversé sort le dernier enregistrement en premier ;)

jiojioforever
WRInaute impliqué
WRInaute impliqué
 
Messages: 523
Inscription: 23 Nov 2006

Message le Lun Juin 18, 2007 14:08

ouep mais comme je le disais plus haut ma requete de base est

SELECT * FROM COTISATION

je fais des manips avec les autres résultats.

En gros je faisais 4 requetes sur la table COTISATION alors que je pouvais en faire une seul et ensuite gérer avec des astuces donc voilou ^^

Mysqk faisait la gueule quand j'avais 5 requetes par client sachant que j'ai 230 clients...
mais bon ça rame encore donc ce n'est que le début


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Lun Juin 18, 2007 14:14

vérifie tes index alors, car 230 clients, c'est rien

Résultat dernier resultat d'un enregistrement

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités