Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kasowanie rekordów, kasowanie rekordów po określonej dacie
monika0021
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.04.2006

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


Cześć:)

problem przedstawia się następująco:

Z bazy, po upływie określonego terminu, mają się automatycznie wykasować nieaktualne rekordy. Niestety, to nie działa. Zamiast usuwania tylko tych rekordów, które przekroczyły określoną datę, usuwają się wszystkie rekordy wpisane dzisiaj ( tylko) do bazy i pojawia się komunikat:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 25 - ( nr linii z pętlą while)

Po wpisaniu na nowo do bazy rekordów, w których termin ważności jeszcze nie upłynął, warning się nie pojawia i wszystko działa ok, do momentu, kiedy w bazie zostanie wpisany rekord "przedawniony". Wtedy znowu wszystkie dzisaj wpisane rekordy są usuwane.

Gdzie jest bład?
kod:
  1. <?php
  2. mysql_connect ("host", "user", "password") or
  3.  die ("Nie można połączyć się z MySQL");
  4. mysql_select_db ("db") or
  5.  die ("Nie można połączyć się z bazą danych");
  6.  
  7.  $query = "SELECT * FROM tabela WHERE rok IS NOT NULL" ;
  8.  $wynik = mysql_query($query) or die (mysql_error());
  9.  
  10. while ($rekord = mysql_fetch_assoc ($wynik)) {
  11.  $rok = $rekord['rok']; // pole w bazie typ varchar(4)
  12. $mies = $rekord['mies']; // pole w bazie typ char(2)
  13. $dzien = $rekord['dzien']; // pole w bazie typ char(2)
  14.  
  15.  
  16. if ($rok && $mies && $dzien) {
  17. $dzien=$dzien+1; //data kasowania 
  18. $timestamp = strtotime($rok."-".$mies."-".$dzien);
  19. $kasuj=date("Y-m-d", $timestamp);
  20.  
  21.  if (date("Y-m-d")>=$kasuj) {
  22. $query = "DELETE FROM tabela WHERE CURDATE() >='".$kasuj."' AND rok IS NOT NULL";
  23.  
  24. $wynik = mysql_query($query) or die (mysql_error());
  25.  
  26. print "Rekordy nieaktualne skasowano"; 
  27.  }
  28. }
  29. }
  30. ?>
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: 22.08.2025 - 22:15