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:
<?php $query = "SELECT * FROM tabela WHERE rok IS NOT NULL" ; $rok = $rekord['rok']; // pole w bazie typ varchar(4) $mies = $rekord['mies']; // pole w bazie typ char(2) $dzien = $rekord['dzien']; // pole w bazie typ char(2) if ($rok && $mies && $dzien) { $dzien=$dzien+1; //data kasowania $query = "DELETE FROM tabela WHERE CURDATE() >='".$kasuj."' AND rok IS NOT NULL"; } } } ?>