Date et formatage de date

smoana Messages postés 26 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 1 novembre 2010 - 22 oct. 2010 à 09:11
smoana Messages postés 26 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 1 novembre 2010 - 23 oct. 2010 à 03:46
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

Renus02 Messages postés 182 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 22 octobre 2010
22 oct. 2010 à 10:25
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.
0
smoana Messages postés 26 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 1 novembre 2010
22 oct. 2010 à 20:11
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.
0
smoana Messages postés 26 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 1 novembre 2010
23 oct. 2010 à 03:46
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.
0
Rejoignez-nous