Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1752 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  SELECT de la date la plus proche du jour actuel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SELECT de la date la plus proche du jour actuel

n°1369998
oli1987
Posté le 18-05-2006 à 20:47:13  profilanswer
 

Bonjour,
J'ai une table avec différentes données dont plusieurs dates.
 
Dans un SELECT, j'aimerais aller rechercher la date future la plus proche du jour actuel, ainsi que la date passée la plus proche.
 
Est ce possible ? Merci d'avance

mood
Publicité
Posté le 18-05-2006 à 20:47:13  profilanswer
 

n°1370005
sielfried
Posté le 18-05-2006 à 20:53:07  profilanswer
 

oli1987 a écrit :


Dans un SELECT, j'aimerais aller rechercher la date future la plus proche du jour actuel


 
La date de demain, quoi ? [:figti]  
 
SELECT DATE_ADD(CURDATE() , INTERVAL 1 DAY);
 

Citation :

ainsi que la date passée la plus proche.


 
SELECT DATE_ADD(CURDATE() , INTERVAL -1 DAY);


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1370007
oli1987
Posté le 18-05-2006 à 20:55:13  profilanswer
 

non pas de demain ...
En fait, ma table reprend des dates de différents matches qui ont lieu a une semaine voire deux semaines d'intervalle .... ca dépend ... 7 jours ou 8 jours voire 6 parfois ... ca dépend

n°1370014
sielfried
Posté le 18-05-2006 à 21:00:14  profilanswer
 

T'as juste à remplacer CURDATE() par la date en question, donc.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1370016
oli1987
Posté le 18-05-2006 à 21:03:25  profilanswer
 

oui mais je voudrais que ca se fasse automatiquement .. pas moyen ???

n°1370018
sielfried
Posté le 18-05-2006 à 21:07:43  profilanswer
 

SELECT DATE_ADD(date, INTERVAL 1 DAY) [FROM ...] prend la date du lendemain de 'date', que veux-tu de plus automatique ? [:figti]  
 
(D'ailleurs, il me semble qu'on peut écrire ça comme ça : SELECT date + INTERVAL 1 DAY)


Message édité par sielfried le 18-05-2006 à 21:13:35

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1370021
oli1987
Posté le 18-05-2006 à 21:14:24  profilanswer
 

merci

n°1370023
oli1987
Posté le 18-05-2006 à 21:15:16  profilanswer
 

en fait, on est le 18-05-2006 ...
Si un match a lieu le 23-05-2006 et celui après le 30-05-2006, ce code là ne fonctionnera pas ...

n°1370047
sielfried
Posté le 18-05-2006 à 21:32:48  profilanswer
 

Ok ok désolé j'avais pas compris... j'avais dû lire à moitié ton dernier message. :sweat:  
 
Essaie qqchose du style :
select min(date) from matches where date > [date_en_question]
 
Eventuellement remplacer [date_en_question] par une sous-requête qui va la chercher, si tu ne l'as pas avant.


Message édité par sielfried le 18-05-2006 à 21:33:06

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1370055
oli1987
Posté le 18-05-2006 à 21:35:55  profilanswer
 

merci, je vais essayer

mood
Publicité
Posté le 18-05-2006 à 21:35:55  profilanswer
 

n°1370134
mrbebert
Posté le 18-05-2006 à 22:23:21  profilanswer
 

En fait, c'est plus une question de français que de SQL :D  
Ce qu'il faut voir, c'est que la date future la plus proche, c'est tout simplement la première des dates supérieures, triées par ordre croissant :)  
SELECT *
FROM la_table
ORDER BY la_date ASC
LIMIT 1
 
Bon, si tu veux juste la date future la plus proche et pas la ligne complète qui la contient, la solution du :
SELECT MIN(la_date) FROM la_table WHERE la_date > date_reference
est surement plus efficace [:figti]

n°1370168
oli1987
Posté le 18-05-2006 à 23:19:09  profilanswer
 

Pouvez vous me dire pourquoi la date passée s'affiche au lieu de la future ???
 

Code :
  1. <?php
  2. $date = date('%Y-%m-%d');
  3. mysql_connect("localhost", "***", "***" ) or die("Impossible de se connecter :  " . mysql_error());
  4. mysql_select_db("***" );
  5. $res = mysql_query("SELECT DATE_FORMAT(dategame,'%Y-%m-%d') AS dategame, game, score FROM games WHERE dategame > '$date' AND cat = '1' ORDER BY dategame ASC LIMIT 1" );
  6. while ($row1 = mysql_fetch_array($res, MYSQL_NUM))
  7. {
  8. ?>   
  9.                   <tr>
  10.                     <td width="100%" height="15">
  11.                     <font face="Verdana" style="font-size: 8pt" color="#FFFFFF">
  12.                     &nbsp;<?php echo $row1[1]; ?></font></td>
  13.                   </tr>
  14.     
  15. <?php
  16. }
  17. mysql_free_result($res);
  18. ?>

n°1370175
mrbebert
Posté le 18-05-2006 à 23:30:54  profilanswer
 

Bien sur, le champ "dategame" à bien le type "DATE" dans la table :??:

n°1370176
oli1987
Posté le 18-05-2006 à 23:33:32  profilanswer
 

oui, et toujours la meme chose

n°1370177
oli1987
Posté le 18-05-2006 à 23:34:17  profilanswer
 

mon DATE_FORMAT ne sert à rien, mais ça ne change rien au final ...

n°1370180
mrbebert
Posté le 18-05-2006 à 23:41:04  profilanswer
 

Essaie avec la requête :
SELECT dategame, '$date' FROM games WHERE dategame > '$date' AND cat = 1 ORDER BY dategame ASC LIMIT 1
 
et pour l'affichage :
<?php echo 'dategame:' . $row1[0] . ',date_ini:' . $row[1]; ?>
 
Parce que bon, s'il te sort un "dategame" antérieur à $date alors qu'il y a "dategame > '$date'" dans le WHERE ... :pt1cable:

n°1370182
oli1987
Posté le 18-05-2006 à 23:48:03  profilanswer
 

et le match ? je le met où ???

n°1370183
oli1987
Posté le 18-05-2006 à 23:48:37  profilanswer
 

sinon, ca donne le meme result ... je capte pas

n°1370187
oli1987
Posté le 18-05-2006 à 23:49:54  profilanswer
 

comme date, il m'affiche 2006-05-07 et non 2006-05-20 ...
 
 
Et la requête a pas l'air fausse pourtant

n°1370435
mrbebert
Posté le 19-05-2006 à 11:51:18  profilanswer
 

La requête que je t'ai demandé d'exécuter, elle renvoie 2 dates :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  SELECT de la date la plus proche du jour actuel

 

Sujets relatifs
comment mettre à jour une page en php?problème d'écriture (double guillemets) SELECT values[résolu]
en cliquant sur une image mise à jour de la BDDMise à jour du contenu d'un tableau JTable
scroll horizontal sur un selectconvertir une chaine en date en php
Utiliser l'attribut SQL SELECTMise à jour de mon RTE (rich texte editor)
[php/Mysql] Probleme requete select[Résolu] Obtenir date depuis date initiale
Plus de sujets relatifs à : SELECT de la date la plus proche du jour actuel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR