Traitement liste contenu d'un champ : Extraction Caractere [Résolu]

Signaler
Messages postés
41
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
3 octobre 2006
-
Messages postés
41
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
3 octobre 2006
-
Bonsoir... je suis debutant en php alors soyez indulgent pour la composition du code que je vais vous exposez... lol...



Mon probleme est que les 'nom des fichiers' que comporte mon champs file sont composer de 4 chiffre : les 2 premiers l'année et les deux suivant le mois... ex : 0605.



Je souhaiterais que lorsque j'affiche le contenu de mon champs, il s'affiche 'Mai 2006'... Est ce possible.



Voila le code que j'utilise actuellement pour afficher simplement le contenu de mon champ.



<?php
echo "\";
$col=1;
$image = \"<table width=\\"100\%\\" height=\\"40\\" border=\\"0\\" cellpadding=\\"0\\" cellspacing=\\"10\\" align=\\"right\\">----
&nbsp;, , \";
mysql_select_db(\"$dossier\");
$requete = \"SELECT file FROM $archive ORDER BY file\";
$resultat = mysql_query($requete);
while($res = mysql_fetch_object($resultat))
{
if ($col==1) echo \"----
\";
echo "$image, [
]

8 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello,

on va ptête pas utiliser date () pour ça, on va plutôt bricoler...surtout que le bricolage durera jusqu'en 2099, ce qui devrait suffire... ;-). Et que avec le code ci-dessus, tu as besoin de set_locale, ce qui là encore est inutile à mon avis.
Tu te crées un tableau : $aMois array ('01'> 'Janvier', '02' => 'Février' etc...). Tu stockes ton file dans une variable pour plus de facilité :
$sFile = $res -> file;
Piuis tu écris tout simplement :
echo $aMois[$sFile[2].$sFile[3]].' 20'.$sFile[0].$sFile[1];

et pour 0605, tu auras Mai 2006.

C'est du bricolage, mais c'est plus rapide et optimisé, au final, que des appels multiples à date () et à set_locale
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesuð

<?php
$date='0605';
$year=substr($date,0,2);
$month=substr($date,2,2);
$time = mktime(0, 0, 0, $month, 1, $year);
$month = date('M', $time);
$year = date('Y', $time);
echo $month ,' - ', $year;
???>

http://fr.php.net/manual/en/function.substr.php
http://fr.php.net/manual/en/function.mktime.php
http://fr.php.net/manual/en/function.date.php

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesuð

#<?php
#$date='0605';
#$year=substr($date,0,2);
#$month=substr($date;2,2);
#$time=mktime(0,0,0,$month,1,$year);
#$month=date('M',$time);
#$year=date('Y',$time);
#echo $month,' - ',$year;
#???>

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesuð

<?php
$date='0605';
$year=substr($date,0,2);
$month=substr($date;2,2);
$time=mktime(0,0,0,$month,1,$year);
$month=date('M',$time);
$year=date('Y',$time);
echo $month,' - ',$year;
?>

http://fr.php.net/manual/en/function.substr.php
http://fr.php.net/manual/en/function.mktime.php
http://fr.php.net/manual/en/function.date.php

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesuð

Je suis persuadé qu il existe mieux que cette méthode :-)

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesuð

C est sûr lol :-)

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Birgir Sigurðssón aka Sjón
Messages postés
41
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
3 octobre 2006

Bonjour et merci pour vos reponse. J'ai essayer d'utiliser celle que malalam m'a proposé.... etant debutant j'ai essayer de faire comme indiquer mais j'ai un message d'erreur... je vous presente mon code... desole par avance...

<?php
echo "\";$aMois array ('01'> 'Janvier', '02' => 'Février', '03' => 'Mars', '04' => 'Avril', '05' => 'Mai', '06' => 'Juin', '07' => 'Juillet', '08' => 'Aout', '09' => 'Septembre', '10' => 'Octobre', '11' => 'Novembre', '12' => 'Decembre');
$col=1;
$image = \"<table width=\\"100\%\\" height=\\"40\\" border=\\"0\\" cellpadding=\\"0\\" cellspacing=\\"10\\" align=\\"right\\">----
&nbsp;, , \";
mysql_select_db(\"$dossier\");
$requete = \"SELECT file FROM $archive ORDER BY file\";
$resultat = mysql_query($requete);
while($res = mysql_fetch_object($resultat))
sFile = $res -> file;
${
if ($col==1)
echo \"----
\";
echo "$image, " . $aMois[$sFile[2].$sFile[3]] . " 20" . $sFile[0].$sFile[1] . "</td>
</td>";
$col++;
if ($col>3)
{ echo "</tr>"; $col=1; }
}
echo "</table>";
?>

En vert le code proposer que j'ai essayer d'implanter... ma page m'annonce une erreur au niveau de l'echoaffichant les files...

Vous avez une autre solution a me proposer... merci par avance et merci pour vos reponse...
Messages postés
41
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
3 octobre 2006

J'ai essayer differente ecriture tout le weekend mais le script m'annonce toujours une erreur a la ligne echo (voir dernier message)... toujours aucune solution a me proposer...?