Tri des dates

rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006 - 9 mars 2005 à 11:27
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006 - 15 mars 2005 à 16:35
bonjour,

je doi faire un agenda, et pour l'instant dans ma page,
j'ai la date d'aujourd'hui et la liste des dates que je recupère dans un champs d'une base access, je voudrai que cet date soit trié en ordre croissant des heures
pour cela -soit la manip se fait dans access (je connais pas trop)
-soit je peux par php

pour info, voila mon code:
<html>
<head><title>agenda</title>
</head>


<?php
include ("connexion.php");
echo ("<center>");
setlocale(LC_TIME, "fr"); // passe en français facilement
$date=strftime("%A %d %B %Y");
echo $date;


echo ("</center>");
echo ("
");
echo ("
");
echo ("
");

$date= odbc_exec( $cnx, "select * from agenda" );
while( odbc_fetch_row( $date ) ) //tant que c pas la fin de la table
{
echo("\");
echo(\"----
\");
echo(\"");
echo odbc_result( $date,2 )."
";
echo(", \");
echo(\"");
echo odbc_result( $date,3 )."
";
echo(", \");
echo(\"\");
echo("
");
echo("
");
}
?>

</html>

et voila ce qu'il s'affiche:


<CENTER>mercredi 09 mars 2005</CENTER>

2005-03-09 13:20:50,
c'est mon premier texte

2005-03-09 11:20:45,
c'est mon deuxieme message

2005-03-10 12:45:42,
c'est mon troisieme message

et voila ce que je veux afficher:

mercredi 09 mars 2005
11:20:45 c'est mon premier message
13:20:50 c'est mon deuxieme message
jeudi 10 mars 2005
12:45:42 c'est mon troisieme message

merci de votre aide svp...

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 mars 2005 à 11:59
Hello,



tien, un petit exemple :



<?php

$date = array (strftime("%A %d %B %Y"),strftime("%A %d %B %Y", mktime (0, 0, 0, 3, 0, 2000)));

foreach ($date as $v)

echo $v, '
';

sort($date);

foreach ($date as $v)

echo $v, '
';

?>



1 - pour afficher tes donnees correctement, tu doisje pense utiliser un truc du genre :

echo
strftime("%A %d %B %Y",odbc_result( $date,2 ))
, '
';

2 - mets ces donnees dans un tableau, et trie le tableau, tout simplement, avant de tout afficher.

Genre :

$date_tab[]=
strftime("%A %d %B %Y",odbc_result( $date,2 ));


$date_tab[]=
strftime("%A %d %B %Y",odbc_result( $date,3 ));

sort ($date_tab);

foreach ($date_tab as $date_aff)

echo $date_aff, '
';
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
10 mars 2005 à 09:29
salut malalam,

j'ai essayé mais ça marche pas, il me met :

jeudi 01 janvier 1970
jeudi 01 janvier 1970

et plein de warning.

il ne prend pas les valeurs de la base,

merci quand meme!!!!
c'est gentil!!!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2005 à 10:01
Doit y avoir une erreur avec les odbc_

Mets tes dates dans une variable, et :


$date_tab[]=
strftime("%A %d %B %Y", $ta_variabe_date );

Ca marche, je l'ai teste.
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
10 mars 2005 à 11:04
salut malalam,
j'ai essayé, je ne trouve pas, je vais devenir folle si ça continue, je ne vois pas d'où vien le probleme.

maintenant j'ai:


<CENTER>jeudi 10 mars 2005</CENTER>

jeudi 01 janvier 1970

2005-03-10 00:00:00,
11:30,
c'est mon deuxieme message


2005-03-11 00:00:00,
09:30,
c'est mon troisieme message

pour ce code:

<html>
<head>
<title>agenda</title>
</head>




<?php
include ("connexion.php");
echo ("<center>");
setlocale(LC_TIME, "fr"); // passe en français facilement
$date=strftime("%A %d %B %Y");
echo $date;


echo ("</center>");
echo ("
");
echo ("
");
echo ("
");

$datebd= odbc_exec( $cnx, "select * from agenda" );

echo strftime("%A %d %B %Y",odbc_result( $datebd,1 )), '
';


while( odbc_fetch_row( $datebd ) ) //tant que c pas la fin de la table
{
echo("\");
echo(\"----
\");
echo(\"");
echo odbc_result( $datebd,2 )."
";
echo(", \");
echo(\"");
echo odbc_result( $datebd,3 )."
";
echo(", \");
echo(\"");
echo odbc_result( $datebd,4 )."
";
echo(", \");
echo(\"\");
echo("
");
echo("
");


echo("
");


}

?>

</html>

et dans ma base j'ai :

table agenda

avec le champs date où le type de données est : date/heure mais le format est date abregé.
ça vient peut etre de là le probleme, de 00:00:00

le champs heure est en format texte (c'est pour ça qu'il affiche correctement)
...

Si tu voit d'où vien le probleme, s'il te plait peut tu me le dire

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 mars 2005 à 11:12
C'est dans le while() que tu dois mettre les dates dans un tableau.

Etr ensuite trier le tableau.

Le 1970 provient du seul endroit ou tu essayes de mettre une date dans
un tableau. Manque de bol, a ce moment la, tu n'as aucun resultat de
requete puisque tu ne l'as pas encore parcourue.
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
15 mars 2005 à 16:35
pas trop compris,
je sais pas trop programmer alors je ne comprend pasbien ce que tu me dis:
je vois pas comment on mets les donnees dans un tableau, et trier le tableau

en plus
rien qu'en mettant ça:

echo strftime("%A %d %B %Y",odbc_result( $datebd,2 )), '
';

j'ai:

jeudi 01 janvier 1970,
12:50,
texte à moi

et pour le reste du programme,jcomprend pas!! pourtant je suis dans le while

while( odbc_fetch_row( $datebd ) ) //tant que c pas la fin de la table
{


echo("<table>");
echo("<tr>");
echo("<td>");
echo strftime("%A %d %B %Y",odbc_result( $datebd,2 )), '
';
echo("</td>");
...
}
il m'ecrase la date que j'ai dans ma base et il met jeudi ...1970
enfin bon

je croit que c'est tomber à l'eau

merci quand meme malalam
0
Rejoignez-nous