Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Porównywanie dat
Bryla
post 28.12.2010, 00:08:36
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 16.01.2010

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


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ć?

Ten post edytował Bryla 28.12.2010, 00:13:04
Go to the top of the page
+Quote Post
wookieb
post 28.12.2010, 00:10:25
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. twoja_data <= '2010-12-30 23:59:59'

Trzymaj datę w formacie datetime.


--------------------
Go to the top of the page
+Quote Post
Bryla
post 28.12.2010, 00:19:13
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 16.01.2010

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


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 :/
Go to the top of the page
+Quote Post
wookieb
post 28.12.2010, 00:34:21
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To zmień ten format po stronie skryptu php.


--------------------
Go to the top of the page
+Quote Post
Bryla
post 28.12.2010, 07:45:27
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 16.01.2010

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


Jak po stronie skryptu?
Kalendarz przekazuje datę do formularza, który wysyłany jest metodą POST.
Go to the top of the page
+Quote Post
sadistic_son
post 28.12.2010, 07:52:22
Post #6





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


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...


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Bryla
post 28.12.2010, 09:45:28
Post #7





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 16.01.2010

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


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. ?>
Go to the top of the page
+Quote Post
celbarowicz
post 28.12.2010, 11:30:50
Post #8





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


  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.  


Ten post edytował celbarowicz 28.12.2010, 11:33:59
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 05:41