Page 1 sur 1

[RESOLUT] Ajout de date avec conditions[PHP,MYSQL]

Posté : 24 févr. 2012, 15:28
par diablanc
Bonjour,

J'ai ce code
$SQL2= "INSERT INTO prices_history (WowID, Price, DateChecked)
	VALUES (" .$itemID.",".$stats->a->active->mkt. ",(NOW()))";
		$conn->query($SQL2);
Je le champ de la BDD est en DATETIME, je souhaiterais que la BDD ne se remplisse que si la dernière entrée a plus d'une heure.

J'ai beau chercher ICI et ailleur je ne trouve que des aides pour la récupération et pas pour l'insertion ... :cry:

Merci par avance pour votre aide ou vos liens si vous en avez.

Re: [PHP,MYSQL] ajout de date avec conditions

Posté : 24 févr. 2012, 15:31
par xTG
Pour pouvoir avoir la dernière entrée c'est une récupération non ? ^^

Re: [PHP,MYSQL] ajout de date avec conditions

Posté : 24 févr. 2012, 15:36
par diablanc
Pour pouvoir avoir la dernière entrée c'est une récupération non ? ^^
Je comprend pas trop ta question mais d'après mes recherches , on peut récupérer ( SELECT) la dernière entrée dans la BDD avec :
$query = mysql_query("SELECT LAST_INSERT_ID()");
Mais je ne vois pas comment intégrer ça avec le NOW() et l'heure si c'est bien cette fonction qu'il faut que j'utilise :)

Re: [PHP,MYSQL] ajout de date avec conditions

Posté : 24 févr. 2012, 15:41
par moogli
Salut,

Suivant le besoin je dirais une procédure stockée qui va la vérification et retourne true / false voir une levée d 'exception sur le sgbd pour l'afficher correctement ensuite (ou pas si l'on veux que la chose soit silencieuse. ).

@diableblanc : pkoi pas mal la il va refuser l'insertion si la
Dernière donnée à moins d'une heure. Donc en autoriser qu'une par heure.
C'est réalisable simplent sur le serveur en SQL (et évite les possible différence d'heure entre les serveurs ;) )

@+

Re: [PHP,MYSQL] ajout de date avec conditions

Posté : 24 févr. 2012, 15:57
par diablanc
Salut,
Suivant le besoin je dirais une procédure stockée qui va la vérification et retourne true / false voir une levée d 'exception sur le sgbd pour l'afficher correctement ensuite (ou pas si l'on veux que la chose soit silencieuse. ).
Je debute et n'ais pas bien compris mais si ce n'est pas silencieux ça n'est pas bon pour moi :) .
@diableblanc : pkoi pas mal la il va refuser l'insertion si la
Dernière donnée à moins d'une heure. Donc en autoriser qu'une par heure.
C'est réalisable simplement sur le serveur en SQL (et évite les possible différence d'heure entre les serveurs ;) )
@+
La ça m'intéresse et je vais voir si je trouve comment faire sur MySQL.
(je posterais la solution quand je l'aurais et clôturerais le sujet)

=D> merci.

Re: [PHP,MYSQL] ajout de date avec conditions

Posté : 24 févr. 2012, 17:00
par diablanc
Comme promis voila la solution que j'ai trouvé, je suis finalement passé par PHP pour le faire :

$heure_post = $conn->query("SELECT DATE_FORMAT(DateChecked, '%H:%i:%s') FROM prices_history 
 WHERE DATE_FORMAT(DateChecked, '%H:%i:%s') = MAX(DATE_FORMAT(DateChecked, '%H:%i:%s'))");
 $ifpost = mktime(0, 0, 0, date("H")+1, date("i"),   date("s"));
 if ($heure_post<$ifpost){
 $SQL2= "INSERT INTO prices_history (WowID, Price, DateChecked)
	VALUES (" .$itemID.",".$stats->a->active->mkt. ",(NOW()))";
		$conn->query($SQL2);
}

En gros je vais chercher l'heure dans datechecked ou l'heure etst la dernière entrée.
je donne une valeur ( $ifpost ) de référence.(heure actuelle + 1 heure)
Et si l'heure récupérée est inférieure à la valeur de référence on poste .


Voila j'espère que ça serviras à d'autres.
:D

Re: [RESOLUT] Ajout de date avec conditions[PHP,MYSQL]

Posté : 24 févr. 2012, 17:58
par moogli
tu peu faire la même chose avec un seul appel au SGBD avec une procèdure stockée
sur mysql => http://dev.mysql.com/doc/refman/5.0/fr/ ... yntax.html, a regarde plus précisément il me semble que c'est qu'a partir de mysql 5 ^^

et un exemple de proc stock http://sqlpro.developpez.com/cours/sqlaz/fondements/#L8

@+