requete date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete date

par Ripat » 20 févr. 2006, 17:07

Code : Tout sélectionner

SELECT * FROM table WHERE dates BETWEEN 2006-01-01 AND 2006-01-31
J'ai un doute. Ne faut-il pas des guillemets autour de la date ?

un SELECT 2006-01-01 renvoie 2004 (2006 moins 1 moins 1)

Par contre SELECT '2006-01-01' renvoie bien 2006-01-01.

Donc je ferais:

Code : Tout sélectionner

SELECT * FROM table WHERE dates BETWEEN '2006-01-01' AND '2006-01-31'
:wink:

par artao » 20 févr. 2006, 16:25

deja je m'excuse pour ma semaine de retard pour la reponse, j'ai eu une grosse grippe a ne meme pa pouvoir regarder la tévé(tte facon ya rien d'interressant)
et un grand merci a toi pour m'avoir ouvert les yeux, c'etait bien ca le maudit point virgule
maintenant je comprend mieux la phrase "le bon PHP ne tient qu'a un point"
donc sur ceux encore merci, et maintenant je vais aller me flageller je crois que je le mérite lol
:afraid: :gla:

par ouckileou » 19 févr. 2006, 13:41

enlève le point-virgule à la fin de cette ligne déjà :
while($donnees = mysql_fetch_array($requete)); 

par artao » 14 févr. 2006, 18:09

ah ok désoler j'avais pas fait la relation><
En fait non ca ne marche toujours pas, les infos sont correctements rentrées
dans la base de données mais je n'arrive pas a les récuperer
pourriez-vous au moins me dire si mon code vous parait correct car moi j'en reste perplexe

par ouckileou » 14 févr. 2006, 17:17

Pour commencer, quand tu insères du code PHP utilise les balises
j'ai édité ton message pour le rajouter

Quel est le problème maintenant en fait ? Tu dis que cela semble marcher

par artao » 14 févr. 2006, 11:16

oups j'ai laissez une erreure dans mon code en le recopiant dsl tous mes champs sont aux pluriels
merci d'avance
:merci:

par artao » 14 févr. 2006, 11:14

pour commencer je suis d'avoir une reponse car j'ai mis une news par mois,
je viens de réessayer avec BETWEEN, ca a l'air de marcher maintenant et je n'ai tjr pas de message d'erreure
comprend plus, de plus je ne retrouve plus la page des restrictions ><
le voici
<?php
mysql_connect("127.0.0.1", "root");
mysql_select_db("test");
$requete = "SELECT * FROM prog WHERE dates BETWEEN 2006-01-01 AND 2006-01-31";
$requete = mysql_query($requete) or die(mysql_error());
   while($donnees = mysql_fetch_array($requete));
   {
?>
<html>(debut de ma page)
<?php
echo $donnees['themes']; $donnees['artist']; $donnees['dates']; $donnees['heure'];
?>
</html>(fin de ma page)
<?php
}
mysql_close();
?>
moi jeune padawan ayant appris le html en deux semaines a vraiment de la peine avec le php lol
en tout cas ca fait plaisir de discuter avec un Nantais :wink:

Oo j'allais oublier pour l'insertion des news j'utilise ceci:
<?php 
mysql_connect("127.0.0.1", "root");
mysql_select_db("test");
$artists = ($_POST['artists']);
$themes = ($_POST['themes']);
$dates = ($_POST['dates']);
$heures = ($_POST['heures']);
mysql_query("INSERT INTO prog VALUES('', '" . $artist . "', '" . $themes . "', '" . $dates . "', '" . $heure . "')"); 
mysql_close();  ?>
voila a partir de la vous avez tous mon code, en esperan que ca aidera

:merci:

par ouckileou » 13 févr. 2006, 22:08

Bizarre que Between soit interdit :shock:

Question bête : s'il n'y a pas de message d'erreur, est-ce que c'est sûr que la requête doit renvoyer des résultats ?
Il n'y a peut-être aucune ligne qui remplit les conditions... à vérifer on ne sait jamais ;)

Mais je demandais comment était exécutée la requête, en local n'apprend rien.
Est-elle exécutée via PHP (mysql_query) ou directement sur la base grâce à qqchose comme phpMyAdmin ?

Si elle est exécutée via PHP, il faut faire afficher le message d'erreur avec quelque chose comme ça :
$requete = "SELECT * FROM table WHERE dates BETWEEN 2006-01-01 AND 2006-01-31";
$requete = mysql_query($requete) or die(mysql_error());
Sinon les erreurs ne s'afficheront pas toute seules

par Invité » 13 févr. 2006, 21:50

d'abord merci pour votre reponse
j'execute ma requete en local et sur un champ de type DATE
j'ai trouvé les restrictions de mysql et BETWENN est interdit, marche pô
je vais essayer de suite sans les ## mais je pense avoir déja essayer, je renverrai a+ tard!
](*,)

par ouckileou » 13 févr. 2006, 19:21

Salut,

cette requête devrait marcher, en enlevant les #

Code : Tout sélectionner

SELECT * FROM table WHERE dates > 2006-01-01 AND dates < 2006-01-31
version allégée :

Code : Tout sélectionner

SELECT * FROM table WHERE dates BETWEEN 2006-01-01 AND 2006-01-31
Quel est le type de la colonne dates ?
Comment exécutes-tu la requête ? via PHP ou directement sur la base (phpMyAdmin)

requete date

par artao » 13 févr. 2006, 18:49

bonjour je suis en train de faire un systeme de news rangées par mois,je rentre bien les news dans la BD(j'ai un champs id, artiste, themes, dates, et heure)pour info je test le tout sur easyphp avac une base mysql
(j'ai mis les champs au pluriel pour ne pas avoir de pbl avec ma BD)
Mais je n'arrive pas a récupérer ces news selon les dates par moi
le scrypte actuel que j'ai trouvé est:
("SELECT * FROM table WHERE dates > #2006-01-01#
AND dates < #2006-01-31#")
exemple pour le mois de janvier
problemes je n'ai pas de message d'erreure mais je n'arrive pas a ecrire le retour des données de plus je ne suis pas bien sur pour les ##
si quelqu'un pouvait éclairer ma lanterne!!
avec tte ma sympathie.

:-k