Problemes sur les dates toujours pas résolus

Résolu
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006 - 16 mars 2005 à 10:34
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 - 22 mars 2005 à 17:01
Bonjour tout le monde,

j'ai un probleme que je n'ai toujours pas resolu, vous allez ptet vous en rapelé , mais comme ça m'a embrouiller, je reprend à zero.

je doi faire un agenda du type:

mardi 5 février 2005
- 8h00 dormir
- 15h00 programmer

mercredi 6 février 2005
- 9h00 redormir
- 14h30 reprogrammer ...etc...

j'ai fais un programme qui m'affiche cela:

05/02/2005 15:00 dormir
05/02/2005 8:00 programmer
06/02/2005 9:00 redormir
06/02/2005 14:30 reprogrammer

pour info: j'ai une base access:
ma table est :agenda
mes champs de la table sont : code_agenda dont le format est : numAuto
datebd " " : texte
heure " " : texte
texte " " :texte

comment faire pour:

-trier les dates dans le bonne ordre et sans mettre la meme date 2 fois?
(en sachant que dans ma base le type de cette données "daetbd" est "texte")
- trier les heures dans le bonne ordre et ne pas réecrir la date qand c'est la meme journée(date)?

-mettre le format en mercredi 5 février 2005

car quand je met echo( "%A %d %B %Y",odbc_result( $datebd,2 )), '
';
il me met toujours jeudi 1er janvier 1970 ??????

- en gros comment je peux faire pour passer de ce que j'affiche avec mon programme à ce que je veux afficher??

pour info voici mon code:


<center>Agenda
</center>
<?php
include ("../../connexion.php");
echo ("<center>");
setlocale(LC_TIME, "fr"); // passe en français facilement
$date_tete=strftime("%A %d %B %Y");
echo $date_tete; // affiche la date d'aujourd'hui sous forme "mercredi 16 mars 2005"


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

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

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("
");
}


odbc_close($cnx);
?>

[../sommaire_agenda/sommaire_agenda.html Retour au sommaire de l'agenda ]



</html>

Je vous remercie d'avance pour votre aide

69 réponses

loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
17 mars 2005 à 10:14
alors ça marche?
3
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 10:56
Si tu ne veux pas voir plusieurs fois la meme date, tu peux regrouper par date (group by) et pour trier utilise le order by :



select * from agenda

group by datedb

oder by datdb

je ne sai pas si le résultat sera bon pour le order by car datedb est de type texte...

essaie et tiens moi au courant.
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 11:04
Sinon faudrai faire 2 requetes:



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

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

$date=
odbc_result( $datebd,2 )
;

$temp=odbc_exec(
$cnx,"select heure, texte from agenda where datedb=
$date);


echo("\");
echo(\"----
\");
echo(\"");
echo odbc_result( $datebd,2 )."
";
echo(", \");

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

echo(\"");
echo odbc_result( $temp,1 )."
";
echo(", \");
echo(\"");
echo odbc_result( $temp,2 )."
";
echo(", \");
}

echo(\"\");
echo("
");

}

essaie
et tiens moi au courant. je pense que ça peut marcher. On récupère et
affiche les dates sans les afficher 2 fois. et pour chaque date on
affiche le programme de la journée.
0
morpheus262 Messages postés 461 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 16 février 2012
16 mars 2005 à 11:05
Salut,
je sais pas trop comment gere php gere du acces mais avec mysql, ecrire
$req=("select * from agenda order by datebd desc group by datebd")
je qui va te trier par date ds l ordre et te regrouper par datebd

sinon tu peux faire ("SELECT DISTINCT datebd FROM agenda ORDER BY datebd DESC);
cette requete va te donner tes date, une seule fois
apres tu boucles en fonction du nombre de reponse de la requete et tu recherche dans la base les elements qui corresponde a ta date, voila deux facon de faire.
ne connaissant pas les base acces avec du php je ne peut etre precis, je peux te fournir le code pour mysql

<HR>
Sans maîtrise la puissance n'est rien et je maîtrise... Apprend ca petit
Sur ce a tchiao bon dimanche.
0

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

Posez votre question
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 11:08
Tu dois rajouter le order by :

$datebd= odbc_exec( $cnx, "select distinct datedb from agenda order by datedb desc" );

je pense que ma deuxième solution doit marcher. Tiens moi au courant.

@+
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 11:14
les deux solutions que tu viens d'énoncer morpheus dont
celles que je lui ai mises précédemment. Je pense que la deuxième
solution marche, mais comme toi je ne sais pas comment php gère du
access.
0
morpheus262 Messages postés 461 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 16 février 2012
16 mars 2005 à 11:16
oui j ai remarqué mais ayant des probleme de raffraichissemnt g pas les message en direct lol, on a peut etre repondu en meme temps.

PS: Besoin d aide pour votre site, besoin de partenaire aller sur mon post "J'aide a developper".


<HR>
Sans maîtrise la puissance n'est rien et je maîtrise... Apprend ca petit
Sur ce a tchiao bon dimanche.
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
16 mars 2005 à 11:36
salut loyousse

j'ai d'abord essayé ta premiere, ça marche pas,
et pour ta deuxieme solution, j'ai remplacer mon code pas celui que tu m'as passé et il me met deux warnings:

Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 21

Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 23
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 11:42
à la ligne 21 met ca (j'avais oublié un guillemet):

$temp=odbc_exec(
$cnx,"select heure, texte from agenda where datedb=
$date");




si c'est tjs le meme message d'erreur alors essaie ça :

$temp=odbc_exec(
"select heure, texte from agenda where datedb=
$date");


à la ligne 23 :

echo $date;



je vais manger et je reviens. tiens moi au courant. ca devrait marcher.

@+
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 12:40
alors ça marche ?
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
16 mars 2005 à 14:18
pour la ligne 21 j'avais mis les guillements.

quand j'ai mis ton code, il me met maintenant:
(plein de warning)

Warning: odbc_result(): Field index is larger than the number of fields in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 26

Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'datedb= '., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 27

Warning: odbc_result(): Field index is larger than the number of fields in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 32,
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 34


Warning: odbc_result(): Field index is larger than the number of fields in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 26

Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe (opérateur absent) dans l'expression 'datedb ='., SQL state 37000 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 27

pour ce code:

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




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


echo ("</center>");
echo ("
");
echo ("
");
echo ("
");
//$datebd= odbc_exec( $cnx, "select distinct datebd from agenda" );
//$datebd = odbc_exec($cnx, "select * from agenda ");
$datebd= odbc_exec( $cnx, "select distinct datebd from agenda order by datebd desc");


while( odbc_fetch_row( $datebd ) ) //tant que c pas la fin de la table
{
$date=odbc_result( $datebd,2 );
$temp=odbc_exec($cnx,"select heure, texte from agenda where datedb=$date");
echo("\");
echo(\"----
\");
echo(\"");
echo odbc_result( $datebd,2 )."
";
echo(", \");
while( odbc_fetch_row( $temp ) ) //tant que c pas la fin de la table
{
echo(\"");
echo odbc_result( $temp,1 )."
";
echo(", \");
echo(\"");
echo odbc_result( $temp,2 )."
";
echo(", \");
}
echo(\"\");
echo("
");
}


odbc_close($cnx);
?>

[../sommaire_agenda/sommaire_agenda.html Retour au sommaire de l'agenda ]

</html>

j'ai essayé de changer le nom de la variable $date(car il y y une fonction qui s'appelle aussi comme cela, pour pas qu'il confond) et ça me met les meme warning,
j'ai essayé de mettre : $temp=odbc_exec("select heure, texte from agenda where datedb=$date");

ça marche pas,

mais j'ai essayé aussi de mettre :
$datebd = odbc_exec($cnx, "select * from agenda ");
au lieu de :$datebd= odbc_exec( $cnx, "select distinct datebd from agenda order by datebd desc");

et il me met ça plusieurs fois(pour chaque date entré dans la base:

Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 26
06/02/2005
06/02/2005

,
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 34
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:26
Je commence à désespérer moi aussi... je vais décortiquer ton code pour essayer de trouver les erreurs. désolé...
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
16 mars 2005 à 14:28
je pense que c'est la requete qui pose probleme,
avec mon ancien code, (celui qui afficher mais pas comme je le voulé), et bien quand je met

$datebd= odbc_exec( $cnx, "select distinct datebd from agenda" );
OU
$datebd= odbc_exec( $cnx, "select distinct datebd from agenda order by datebd desc");
AU LIEU DE çA:
$datebd = odbc_exec($cnx, "select * from agenda ");

j'obtiens:
Warning: odbc_result(): Field index is larger than the number of fields in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 56
pour les ligne :
echo odbc_result( $datebd,2 )."
";
echo odbc_result( $datebd,3 )."
";
echo odbc_result( $datebd,4 )."
";

en faite c'est quand je met select datebd je voi pas pkoi mais bon?
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:35
au lieu de mettre $date=odbc_result( $datebd,2 ); essaie
$date=odbc_result( $datebd,1 );

ca devrait enlever des warning
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
16 mars 2005 à 14:37
je fé sur mon ancien code un select datebd il me met les warning.
en faite y'a que le select * qui marche, meme select code_agenda(qui est la clef primaire) ne marche pas.

moi ça fai longtemps chui dessus mais je trouve pas, g essayé un tas de truc

franchement si tu trouve t un pro
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:37
pareil pour la ligne :

echo odbc_result( $datebd,2 )."
";

à remplacer par :


echo odbc_result( $datebd,1 )."
";
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:41
On lui demandait de récupérer le deuxième champs du résultat de la requete mais elle renvoie qu'un seul champ !!!!
0
rukiyes Messages postés 67 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 3 avril 2006
16 mars 2005 à 14:48
voila pour ce code:

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

<center>Agenda
</center>


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


echo ("</center>");
echo ("
");
echo ("
");
echo ("
");
$datebd= odbc_exec( $cnx, "select distinct datebd from agenda order by datebd desc");
while( odbc_fetch_row( $datebd ) ) //tant que c pas la fin de la table
{
$date_bis=odbc_result( $datebd,1 );
echo $date_bis;
$temp=odbc_exec($cnx,"select heure, texte from agenda where datedb=$date_bis");
echo $date_bis;
echo ("
");
echo ("
");
echo ("
");
echo("\");
echo(\"----
\");
echo(\"");
echo odbc_result( $datebd,1 )."
";
echo(", \");
while( odbc_fetch_row( $temp ) ) //tant que c pas la fin de la table
{
echo(\"");
echo odbc_result( $temp,1 )."
";
echo(", \");
echo(\"");
echo odbc_result( $temp,2 )."
";
echo(", \");
}
echo(\"\");
echo("
");
}


odbc_close($cnx);
?>

[../sommaire_agenda/sommaire_agenda.html Retour au sommaire de l'agenda ]

</html>

j'ai :

06/02/2005
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 28
06/02/2005

06/02/2005,
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 39
05/02/2005
Warning: odbc_exec(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 28
05/02/2005

05/02/2005,
Warning: odbc_fetch_row(): supplied argument is not a valid ODBC result resource in c:\program files\easyphp1-7\www\pref28\agenda\affichage\agenda.php on line 39
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:54
pour le premier warning t'a essayé :

de mettre ca :

$temp=odbc_exec("select heure, texte from agenda where datedb=$date_bis");


à la place de :

$temp=odbc_exec($cnx,"select heure, texte from agenda where datedb=$date_bis");
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
16 mars 2005 à 14:59
la variable $cnx tu la trouve où?
0
Rejoignez-nous