selectionner les champs avec une date inférieure à 1 semaine.. [MySQL] - Programmation
Marsh Posté le 16-12-2001 à 15:44:08
Utilise une fonction MySql dur genre DATE_SUB(...)
La doc est là : http://www.mysql.com/doc/D/a/Date_ [...] tions.html
Marsh Posté le 16-12-2001 à 15:47:02
Par exemple :
SELECT * FROM ma_table WHERE date_a_tester >= DATE_SUB(now(),INTERVAL 7 DAY)
Marsh Posté le 16-12-2001 à 15:49:58
Il me marque
Resource id #2
Je continue de tester
J'ai mis ça comme requete:
$query = "SELECT * from resultats WHERE date >= DATE_SUB(now(),INTERVAL 7 DAY)";
[edtdd]--Message édité par haazheel--[/edtdd]
Marsh Posté le 16-12-2001 à 15:51:49
Fait voir le code !
Marsh Posté le 16-12-2001 à 15:55:51
Le pb est pas dans la requête (si ton champ 'date' est bien de type datetime)
C'est ailleurs que çà va pas, genre dans la consultation des résultats !
Marsh Posté le 16-12-2001 à 15:56:31
Pour le code php:
include("conf.php3" );
$query = "SELECT * from resultats WHERE date >= DATE_SUB(now(),INTERVAL 7 DAY)";
$result = mysql_query("$query",$connexion);
echo $result;
La structure de la table:
CREATE TABLE resultats (
id int(11) NOT NULL auto_increment,
championnat varchar(10) NOT NULL,
domicile varchar(255) NOT NULL,
points_dom smallint(3) DEFAULT '0' NOT NULL,
exterieur varchar(255) NOT NULL,
points_ext smallint(3) DEFAULT '0' NOT NULL,
date date DEFAULT '0000-00-00' NOT NULL,
pseudo varchar(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE id (id),
KEY id_2 (id)
);
Marsh Posté le 16-12-2001 à 16:07:37
j'y connais que dalle en date_sub, mais il me semble que pour afficher un résultat valide, il faudrait faire un $row= mysql_fetch_object($result) au minimum...
puis un echo $row->id, ...
Marsh Posté le 16-12-2001 à 16:12:38
j'ai fait un truc du même genre sur ce site :
http://z0rglub.dns2go.com/film/film.php3
si le principe te plaît, je t'expliquerai comment j'ai fait
Marsh Posté le 16-12-2001 à 16:20:24
YES !
$query = "SELECT * from resultats WHERE date >= DATE_SUB(now(),INTERVAL 7 DAY)";
$result = mysql_query("$query",$connexion);
echo $result;
C'est loin d'être suffisant !
$result n'est qu'un identifiant de résultat !
Ensuite, faut l'interroger avec une des fonction fetch...
Voir la doc PHP sur les fonction MySql.
Marsh Posté le 16-12-2001 à 16:30:17
z0rglub a écrit a écrit : j'ai fait un truc du même genre sur ce site : http://z0rglub.dns2go.com/film/film.php3 si le principe te plaît, je t'expliquerai comment j'ai fait |
beau répertoire
Marsh Posté le 16-12-2001 à 16:35:03
j'ai merdé sur la table, j'ai deleté le champs catégorie, alors c tout laid là
Marsh Posté le 16-12-2001 à 16:36:05
Mara's dad a écrit a écrit : YES ! $query = "SELECT * from resultats WHERE date >= DATE_SUB(now(),INTERVAL 7 DAY)"; $result = mysql_query("$query",$connexion); echo $result; C'est loin d'être suffisant ! $result n'est qu'un identifiant de résultat ! Ensuite, faut l'interroger avec une des fonction fetch... Voir la doc PHP sur les fonction MySql. |
Pas besoin!!
Ca marche avec ça:
$query = "SELECT pseudo FROM resultats where date >= DATE_SUB(now(),INTERVAL 7 DAY)";
$result = mysql_query("$query",$connexion);
$lignes = mysql_num_rows($result);
$i = 0;
while ($i<$lignes)
{
$date = mysql_result($result,$i,"date" );
echo $date;
$i++;
}
Par exemple...
Merci pour tout!!
Marsh Posté le 16-12-2001 à 17:08:53
C'est exactement ce que je voulais dire ;-)
Ou plus simplement :
$query = "SELECT pseudo FROM resultats where date >= DATE_SUB(now(),INTERVAL 7 DAY)";
$result = mysql_query( $query, $connexion );
while( $lignes = mysql_fetch_array( $result ) )
{
echo $lignes[date];
echo $lignes[championnat];
echo $lignes[domicile];
...
}
[edtdd]--Message édité par Mara's dad--[/edtdd]
Marsh Posté le 16-12-2001 à 18:59:21
Mara's dad a écrit a écrit : echo $lignes[championnat]; |
écrire ça:
echo $lignes[championnat];
revient à écrire ça?
$date = mysql_result($result,$i,"date" );
echo $date;
C'est vachement plus simple alors...
Quels sont les avantages d'une méthode par rapport à l'autre?
Marsh Posté le 16-12-2001 à 20:30:39
Par exemple :
- Quand t'as 10 champs, c'est 1 seul appel MySql au lieu de 10.
- Dans une fonction, tu retourne un tableau avec toutes les valeurs d'un seul coup.
Si t'as besoin que de la date, c'est pas la peine de faire un "SELECT *".
Mais tu fais comme tu veux...
Je réagissais juste au "echo $result;"
Marsh Posté le 17-12-2001 à 09:48:14
Mara's dad à écrit
Citation : |
tu fais comment pour faire afficher la date, le champoinnat, le domicile, et ...
en faisant un select peusdo from ...
respect
Marsh Posté le 17-12-2001 à 10:04:40
Arghhhhh, le copier coller à encore frappé !
Marsh Posté le 16-12-2001 à 15:38:14
Salut,
je voudrais savoir comment aller chercher les entrées d'une table (qui contient un champ date au format 'YYYY-MM-DD', et uniquement les champs dont la date est inférieure à 1 semaine.
Ex: Là, on est le 2001-12-16, je voudrais les champs compris entre le 2001-12-09 et aujourd'hui...
J'ai cherché dans la doc du côté de curdate(), week()... et j'ai pas trouvé comment faire.
Help!!!
Merci d'avance