Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Porównywanie dat
Forum PHP.pl > Forum > Przedszkole
Bryla
Witam, mam pewien problem z porównywaniem dat.
Mam dwie daty: jedną aktualną, drugą pobieraną z bazy danych w formacie dd-mm-yyyy (wcześniej jest wskazywana przez kalendarz w js). Chciałbym napisać skrypt usuwający rekordy z tabeli jeżeli aktualna data jest większa od tej z bazy. Z samym zapytaniem nie mam problemu. Problem pojawia się gdy chcę ze sobą porównać te dwie daty. Oczywiście obie daty mają te same formaty.

Jeżeli dzień z bazy jest większy od aktualnego dnia to wszystko działa, natomiast jeżeli dzień z bazy jest mniejszy to dalej nie jest sprawdzane tylko usuwane.

Czyli jeżeli wpiszę datę: 30.12.2010 to nie zostanie usunięty rekord, natomiast jeżeli wpiszę datę 01.01.2011 to jest on usuwany.

Mógłby mi ktoś poradzić co z tym zrobić?
wookieb
  1. twoja_data <= '2010-12-30 23:59:59'

Trzymaj datę w formacie datetime.
Bryla
Niestety co do formatu daty jestem ograniczony do tego jednego. "Mój kalendarz" na więcej mi nie pozwala, gdy próbuję zmieniać formaty daty w nim sypie mi błędami :/
wookieb
To zmień ten format po stronie skryptu php.
Bryla
Jak po stronie skryptu?
Kalendarz przekazuje datę do formularza, który wysyłany jest metodą POST.
sadistic_son
Cytat(Bryla @ 28.12.2010, 07:45:27 ) *
Jak po stronie skryptu?
Kalendarz przekazuje datę do formularza, który wysyłany jest metodą POST.
Ale to co wysłaen jest POSTem musi być przecież gdzieś 'obrabiane' przez php tak? Napisałeś przecież , że chcesz stworzyć skrypt usuwający z bazy. Pokaż co stworzyłeś do tej pory, wklej tu kod a pomożoemy. Bo na razie to tylko poruszanie się po omacku i wróżenie z fusów...
Bryla
Plik usuwający rekordy z bazy danych:
  1. <?php
  2.  
  3. include './connect.php';
  4.  
  5. $data = date('d-m-Y', $_SERVER['REQUEST_TIME']);
  6. $time = date('H:i', $_SERVER['REQUEST_TIME']);
  7.  
  8. $query = "DELETE FROM spary
  9. WHERE spar_date < '$data' AND spar_time < '$time'";
  10. $result = mysql_query($query)
  11. ?>


spar_date i spar_time są wprowadzane do bazy przez formularz:

  1. <tr>
  2. <td width="400px">Podaj datę:</td>
  3. <td><input type='text' name='data'>
  4. <script language="JavaScript">
  5. new tcal ({
  6. // form name
  7. 'formname': 'add_spar',
  8. // input name
  9. 'controlname': 'data'
  10. });
  11. </script>
  12. </td>
  13. </tr>
  14.  
  15. <tr>
  16. <td>Podaj godzinę (w formacie hh:mm):</td>
  17. <td><input type='text' name='time'></td>
  18. </tr>

Oczywiście jest jeszcze dalszy ciąg tego formularza.

Teraz kod, który jest odpowiedzialny za wpisanie rekordu do bazy danych:
  1. <?php
  2.  
  3. if(isset($_POST['button_spar'])) {
  4.  
  5. $data = strip_tags(mysql_real_escape_string($_POST['data']));
  6. $time = strip_tags(mysql_real_escape_string($_POST['time']));
  7. $spar_players = strip_tags(mysql_real_escape_string($_POST['spar_players']));
  8. $spar_game_type = $_POST['spar_game_type'];
  9. $spar_serwer_ip = strip_tags(mysql_real_escape_string($_POST['spar_serwer_ip']));
  10. $spar_game_status = $_POST['spar_game_status'];
  11. $actual_date = date('d-m-Y', $_SERVER['REQUEST_TIME']);
  12.  
  13.  
  14. if(empty($data) OR empty($time) OR empty($spar_players) OR empty($spar_game_type) OR empty($spar_serwer_ip) OR empty($spar_game_status)) {
  15.  
  16. echo "<p id='false'>Nie wszystkie pola są wypełnione!</p>";
  17.  
  18. } else {
  19.  
  20. $add_spar = "INSERT INTO spary (spar_user_add, spar_date, spar_time, spar_game_type, spar_game_status, spar_serwer_ip, spar_players)
  21. VALUES ('$user_id', '$data','$time','$spar_game_type', '$spar_game_status', '$spar_serwer_ip', '$spar_players')";
  22.  
  23. $result = mysql_query($add_spar)
  24.  
  25. echo "<p id='true'>Dodano sparing do bazy danych!";
  26.  
  27. }
  28. }
  29.  
  30. ?>
celbarowicz
  1. strtotime($twoja_data_z_bazy);
  2. strtotime($obecna_data);
  3.  
  4. if(strtotime($twoja_data_z_bazy)<strtotime($obecna_data)){usuwasz rekord z bazy używając indeksu lub w inny wykombinowany sposób }else(questionmark.gif)
  5.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.