Problemes sur les dates toujours pas résolus [Résolu]

Signaler
Messages postés
67
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2006
-
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
-
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

Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
alors ça marche?
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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.
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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.
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

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.
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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.

@+
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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.
Messages postés
461
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
16 février 2012

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.
Messages postés
67
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2006

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
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
à 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.

@+
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
alors ça marche ?
Messages postés
67
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2006

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
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
Je commence à désespérer moi aussi... je vais décortiquer ton code pour essayer de trouver les erreurs. désolé...
Messages postés
67
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2006

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?
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
au lieu de mettre $date=odbc_result( $datebd,2 ); essaie
$date=odbc_result( $datebd,1 );

ca devrait enlever des warning
Messages postés
67
Date d'inscription
lundi 17 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2006

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
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
pareil pour la ligne :

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

à remplacer par :


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

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
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
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");
Messages postés
198
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
16 décembre 2008
1
la variable $cnx tu la trouve où?