Date et formatage de date

Signaler
Messages postés
26
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
1 novembre 2010
-
Messages postés
26
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
1 novembre 2010
-
Bonjour,

Alors mon soucis j'ai un tableau qui m'affiche des données d'une table mysql.

J'ai aucun problème pour le moment au niveau de l'affichage.

Mais j'aimerais modifier deux choses.

D'abord l'affichage de la date qui est comme ceci 2010-09-30, comment faire pour que l'affichage soit plutôt comme ceci 30-09-2010 ou 30/09/2010.

Ensuite le gros problème c'est:

Voici ma requête:

$requete= " SELECT id_intervention AS 'Intervention N°',
id_machine AS 'PIN',date AS 'Date',
compteur_n AS 'Compteur Noir' ,
from intervention
ORDER BY id_machine";

Avec l'affichage de mon tableau

$result=@mysql_query($requete,$idcom);
if(!$result)
{
echo "Lecture impossible";
}
else
{
$nbcol=mysql_num_fields($result);
$nbart=mysql_num_rows($result);

//Affichage des titres du tableau
echo "\";
for($i=0;$i<4;$i++)
{
echo \" ", mysql_field_name($result,$i)," |\";
}
echo \"\";
//Affichage des valeurs du tableau
while($ligne =mysql_fetch_array($result,MYSQL_NUM))
{
echo \" ----
$ligne[0],
$ligne[1],
$ligne[2],
$ligne[3], \";
}
echo "
";

Ce qui me donne comme exemple:

Intervention N° PIN Date Compteur Noir

31 1 2010-09-30 406139
63 1 2010-10-19 406314
58 2 2010-10-18 456512
46 3 2010-10-12 406279
45 4 2010-10-12 55562
44 5 2010-10-12 599483
19 5 2010-09-27 599629
51 5 2010-10-14 599955

J'aimerais afficher uniquement la dernière date pour chaque PIN affiché.
Exemple pour le pin 1 je voudrais avoir la dernière date soit l'intervention
N°63 1 2010-10-19 406314
et pour le pin 5 l'intervention
51 5 2010-10-14 599955

Que dois je modifier comme code.

Merci d'avance.

Cordialement.

Moana.

3 réponses

Messages postés
182
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
22 octobre 2010

Salut,

tout se passe dans la requête, le formatage de la date, et la sélection de la date "max".
ca doit donner qqchose comme cela :

SELECT id_intervention AS 'Intervention N°',
id_machine AS 'PIN',
DATE_FORMAT(max(date_envoi), '%d %m %Y') AS 'Date',
compteur_n AS 'Compteur Noir' ,
FROM intervention
GROUP BY id_machin
ORDER BY id_machine

cdt.
Messages postés
26
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
1 novembre 2010

Salut Renus,

J'ai donc effectué ta modification comme tu me l'as dit :

$requete="SELECT id_intervention AS 'Intervention N°',
id_machine AS 'PIN',
DATE_FORMAT(max(date_envoi), '%d %m %Y')AS'Date',
compteur_n AS 'Compteur Noir'
from intervention
GROUP BY id_machine
ORDER BY id_machine";

Alors maintenant j'ai le message d'erreur Lecture impossible.

J'ai l'impression qu'il manque une parenthèse ou quelque chose.

Peux tu aussi m'expliquer pourquoi rajouter GROUP BY id_machines

Cordialement.

Moana.
Messages postés
26
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
1 novembre 2010

Salut,

Finalement j'ai compris ton explication, je me suis trompé à un endroit,

il fallait que je mette DATE_FORMAT(max(date), '%d %m %Y')AS'Date' et non
DATE_FORMAT(max(date_envoi), '%d %m %Y')AS'Date'

Encore une question à partir de cette correction,maintenant j'ai un décalage entre Intervention N° et Date.

Il me met bien la dernière DATE mais il me prend l'intervention la plus ancienne.

J'ai donc cela :
Intervention N° PIN Date Compteur Noir

31 1 19/10/2010 406139
58 2 18/10/2010 456512
46 3 12/10/2010 406279
45 4 12/10/2010 55562
19 5 14/10/2010

Alors que normalement c'est l'intervention 63 qui correspond à :19/10/2010 et l'intervention 51 qui correspond à 14/10/2010.

Merci d'avance.

Moana.