Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wygaszanie rekordów
kajzur
post
Post #1





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Witam,
napisałem skrypt, który docelowo będzie wykonywany przez CRON'a. Ma on za zadanie wygaszanie rekordów w bazie (tj. zmiana statusu na deactive). Wygasznie ma zajść w 2 przypadkach:
  • Gdy ilość będzie równa 0
  • Gdy czas z bazy danych + 10 dni będzie dalej (przejdzie lub będzie równy) od aktualnej daty.


Skrypt wygląda tak, jednak że, nie wygasza aukcji których data przeszła:
  1. include("pdo.php");
  2. $kt = time();
  3. $dane = $pdo -> query("select `date` from `goods` where `status` = 'activ'");
  4. $zmiana = 0;
  5. while($data = $dane->fetch(PDO::FETCH_NUM))
  6. {
  7.  
  8. $zmiana = 0;
  9. if(strtotime($data[0]) + (86400*10) >= $kt )
  10.  
  11. {
  12. $d = $data[0];
  13. $zmiana++;
  14. $zmiana = $pdo->exec("Update `goods` SET `status`='deactive' WHERE `date`='$d'");
  15.  
  16.  
  17. }
  18.  
  19. }

Proszę o pomoc.

PS. Jest jakiś inny sensowny sposób poza CRON'em, a by tego dokonać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Odświeżasz tą wypowiedź i odświeżasz;)

  1. INSERT INTO `goods` (`date`,`ilosc`,`status`,`id`) VALUES
  2. ('2009-08-12 12:28:20',0,'activ',1),
  3. ('2009-08-12 12:28:20',0,'activ',2),
  4. ('2009-06-22 21:23:49',5,'deactive',3),
  5. ('2009-06-22 21:25:30',4,'deactive',4),
  6. ('2009-08-16 00:18:57',13,'activ',5),
  7. ('2009-08-19 15:59:54',20,'deactive',6),
  8. ('2009-07-21 22:36:39',1,'activ',7),
  9. ('2009-08-05 00:26:13',1,'deactive',8);

(IMG:http://img43.imageshack.us/img43/6643/tabelac.png)

  1. SELECT * FROM `goods` WHERE DATEDIFF(CURDATE(),`date`)>=10 OR `ilosc`=0;

(IMG:http://img26.imageshack.us/img26/9848/wynikid.png)

  1. UPDATE `goods` SET `status`='deactive' WHERE DATEDIFF(CURDATE(),`date`)>=10 OR `ilosc`=0;

(IMG:http://img22.imageshack.us/img22/3905/updatev.png)

No nie wiem, ale wg mnie wszystko działa prawidłowo...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 04:58