Rechercher : dans
Par :

Timestamp et condition sql...

Dernière réponse le 20 déc 2007 à 16:17:15 jeje59350, le 22 aoû 2007 à 18:57:59 
 Signaler ce message aux modérateurs

Bonjour!!

j'ai un probleme, je veux faire un systeme qui fasse en sorte que dans une certaine periode donnée d'un an , des images s'affichent, puis cette periode dépassée ou alors non encor entammé, les images ne s'affichent pas!

pour ca j'ai donc créé un formulair pour l'upload de l'image, aucun probleme, on rentre la date a laquelle on souhaite publier l'image sur le site (les 15/10/2007 par exemple) cette date est traduite en seconde et est stockée dans ma bdd , j'effectue ensuite un autre calcul pour obtenir la date en seconde de "dans un an" (donc ici le 15/10/2008) !

ces deux dates sont stockées dans la bdd ce qui ressemble a sa (pour une photo):

id numero photographe date publication(date) datepublication+1an(date2)
25 20008 potter 1187733600 1219252320

mon probleme est lors de la requete sql, je ne sais pas quoi ecrire pour lui demander de ne publier l'image uniquement quand la date actuelle est comprise entre "date" et "date2"

je suis tres mauvais en php et j'avais tenté un truc comme sa :

$sql = "SELECT id, numero, nomphoto, date, date2 FROM cartes WHERE date<='$timestamp'<date2";

mais sa ne fonctionne pas(pas etonnant, sa doi etre du n'importe quoi mon code!!^^)
, il m'affiche les photos, meme celles qui ne devraient pas l'etre

quelqu'un pourrait'il m'éclairer?

merci
Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « Timestamp et condition sql... » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Excel - Mises en forme conditionnelles illimitées VoirMises en Forme Conditionnelles Illimitées Sommaire: Introduction Principe Code Fichier joint Introduction La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents...
Télécharger MS SQL Migrate VoirPour des raisons pratique ou quasiment professionnel, il est nécessaire de convertir des bases de données entre différents formats. Le principal, c’est qu’il n’y ait aucune perte de donnée lors de la conversion. MS SQL Migrate est...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
SQL - Restriction VoirExpression des restrictions Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs attributs. En SQL, les restrictions s'expriment à l'aide de la clause WHERE suivie d'une condition logique...
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...

1

Ohm-WorK, le 22 aoû 2007 à 19:05:01

Salut

T'a requète était pas loin d'etre ok !

Essaye comme ca :

" Select id, numero, nomphoto, date, date2 FROM cartes WHERE date <= '$timestamp' AND date2 >= '$timestamp' "

Tchuss :) La vie est une maladie mortelle, sexuellement transmissible (Woody Allen)

Répondre à Ohm-WorK

2

jeje59350, le 22 aoû 2007 à 20:51:00

Merci!

j'ai modifié un peu en remplacent le timestamp par autre chose... bref ça fonctionne!

mais maintenan la page qui doit afficher les images quand la date actuelle est superieure a la date2 d'une image ne fonctionne toujours pas... voici le code

$actu= time();

$sql = "Select id, numero, nomphoto, date, date2 FROM cartes WHERE date2 <= '$actu' ";


alors que sa :
$actu= time();
$sql = "Select id, numero, nomphoto, date, date2 FROM cartes WHERE date <= '$actu' AND date2 >= '$actu' ";

sa fonctionne ... c'est presque pareil mais pourtant...

Répondre à jeje59350

3

jeje59350, le 22 aoû 2007 à 21:43:43

Ah je viens de trouver la source du probleme, mais si quelqu'un peut tout de meme m'expliquer...

en fait quand je mettait une date trop anterieure ( dans les années 1990') sa ne fonctionnait pas
tandisqu'une date du genre 2002 fonctionne...

et pourtant il ne prend pas en compe que les deux derniers chiffres donc pas de probleme de ce coté là...
et la traduction de la date en seconde est correcte , meme pour les dates des années 19.. !
donc je ne comprend pas... si quelqu'un sait d'ou vient ce bug...

Répondre à jeje59350

4

 Adrien, le 20 déc 2007 à 16:17:15

Alors déjà, ta requète est fausse.

$sql = "Select id, numero, nomphoto, date, date2 FROM cartes WHERE date <= '$actu' AND date2 >= '$actu' ";

Ca devrait être:

$sql = "Select id, numero, nomphoto, date, date2 FROM cartes WHERE date <= '".$actu ."' AND date2 >= '".$actu."' ";

il faut ABSOLUMENT fermer la chaine et concaténer la variable car le php utilisera sa valeur et non son nom.
Tente des echo $sql; sur tes anciennes requêtes, tu risques d'avoir de jolies surprises...

Ensuite, le timestamp fonctionne à partir du 01/01/1970 mais pas sur une date antérieure.

Désolé pour la réponse ultra tardive au vieux post, mais cette erreur devait être corrigée.

Répondre à Adrien