Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wizyty przestały działać
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam otóż mam taki problem napisałem sobie wizyty i wszystko śmigało ( używam localhostu ) do czasu wybicia dzisiejszej daty przestało usuwać IP oraz dodawać dzisiejszą datę . Co jest grane ? może ktoś podpowie

  1. <?php
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $dataDzis = date("d.m.Y", time());
  5. $dataWczoraj = date("d.m.Y", time()-(24*3600));
  6. $sprawdz_data = 0;
  7.  
  8. $zapytanieU = "DELETE FROM `wizyty_ip` WHERE data<'".$dataDzis."' "; // usuwanie ip po 24h
  9. $startU = mysqli_query($polaczenie,$zapytanieU);
  10.  
  11. $zapytanie="SELECT ip FROM wizyty_ip WHERE ip='".$ip."' "; // Sprawdzanie czy ip w bazie
  12. $wynik = mysqli_query($polaczenie,$zapytanie);
  13. $sprawdz_ip = mysqli_num_rows($wynik);
  14.  
  15. $zapytanie2 = mysqli_query($polaczenie,"SELECT `data` FROM `wizyty` ORDER BY `data` DESC LIMIT 0,1");
  16. while($dbW = $zapytanie2 -> fetch_assoc() ) {
  17. $sprawdz_data=$dbW['data']; // Sprawdzanie czy data jest w bazie
  18. }
  19. if ($dataDzis == $sprawdz_data && $sprawdz_ip == 0) // Warunek daty i ip
  20. {
  21. $zapytanie = mysqli_query($polaczenie,"UPDATE wizyty SET wizyty= wizyty+1 WHERE data = '".$dataDzis."'");
  22. $zapytanie2 = mysqli_query($polaczenie,"INSERT INTO `wizyty_ip` (`data`,`ip`)
  23. VALUES ('".$dataDzis."','".$ip."');");
  24. }
  25. elseif ($dataDzis > $sprawdz_data ) // Gdy warunek nie jest spelniony
  26. {
  27. $zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`)
  28. VALUES ('".$dataDzis."',
  29. '1'
  30. );";
  31. $start = mysqli_query($polaczenie,$zapytanie);
  32. $zapytanie2 = "INSERT INTO `wizyty_ip` (`data`,`ip`)
  33. VALUES ('".$dataDzis."',
  34. '".$ip."'
  35. );";
  36. $start2 = mysqli_query($polaczenie,$zapytanie2);
  37. }
  38.  
  39. $zapytanieWiz = mysqli_query($polaczenie,"SELECT wizyty FROM wizyty WHERE data = '". $dataDzis."'; ");
  40.  
  41. while($db = $zapytanieWiz -> fetch_assoc() ) { // Dzisiejsze wizyty
  42.  
  43. $dzis=$db['wizyty'];
  44. }
  45. $zapytanieWiz2 = mysqli_query($polaczenie,"SELECT wizyty FROM wizyty WHERE data = '". $dataWczoraj."'; ");
  46.  
  47. while($db = $zapytanieWiz2 -> fetch_assoc() ) { // Wczorajsze wizyty
  48.  
  49. $wczoraj=$db['wizyty'];
  50. }
  51.  
  52. if (empty($wczoraj))
  53. {
  54. $wczoraj = 0; // Jezeli wczorajsza data nie istnieje
  55. }
  56.  
  57. $zapytanieSuma = "SELECT SUM(wizyty) AS wizyty FROM wizyty"; // Sumowanie wizyt
  58. $wynikS = mysqli_query($polaczenie,$zapytanieSuma);
  59. while($db = mysqli_fetch_array($wynikS) ) {
  60. $lacznie=$db['wizyty'];
  61. }
  62.  
  63. include("templatki/wizyty.html");
  64.  
  65. ?>
viking
Jakieś błędy na stronie albo w logach? Aktualizacja serwera po drodze?
mrk9109
wlasnie 0 bledow jedynie że brak zdefiniowanego zmiennej dzis ale to normalne skoro jej nie tworzy nie wiem czemu to przestalo dzialac . Używam xampa watpie ze robil jakas aktualizacje
nospor
A pole 'data' w tabeli 'wizyty' to jakiego jest typu? Bo mi wyglada na zwykle pole tekstowego to dosc logiczne ze z dniem 1 marca przestalo ci wszystko dzialac...
mrk9109
  1. @$polaczenie -> query("DROP TABLE IF EXISTS `wizyty`");
  2. @$polaczenie -> query("CREATE TABLE IF NOT EXISTS `wizyty` (
  3. `id` int(10) NOT NULL AUTO_INCREMENT,
  4. `data` varchar(255) NOT NULL,
  5. `wizyty` varchar(255) NOT NULL,
  6. PRIMARY KEY ( `id` )
  7. ) ENGINE = MYISAM DEFAULT CHARSET=utf8;");

to jak ma byc ?

bo jak zapisze

"`data` date NOT NULL,"

to zapisuje date w samych 0000 i zaczyna dzialac
viking
https://dev.mysql.com/doc/refman/5.7/en/datetime.html
Data jest w formacie 0000-00-00
mrk9109
pozmieniałem baze danych skrypt i śmiga znow wszystko jeszcze przerobie wizyty ip date tongue.gif dziekuje smile.gif

edit

kurde znow przestalo dzialac zapisuje tylko 1 rekord ...

http://wklej.org/id/3376252/
Pyton_000
Czy uważasz że

$dataDzis = date("y.m.d", time());
$dataWczoraj = date("y.m.d", time()-(24*3600));

jest w formacie "000-00-00" questionmark.gif
nospor
Czego nie rozumiesz, w zdaniu:
data ma byc formatu 0000-00-00
?

I wizyty to zdaje sie LICZBA wiec czemu znowu w bazie zapisujesz to jako TEKST??
mrk9109
zrobiłem zapis wizyty w liczbach i jak by nie działał mi dalej warunek UPDATE itp tworzy date przy 1 wizycie i na tym sie konczy
viking
Pokaż teraz kod po zmianach.

Swoją drogą to w nowych wersjach mysql przeskoczyli wreszcie problem przyjmowania ISO 8601 czy dalej udają że nic się nie dzieje?
mrk9109
  1. <?php
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $dataDzis = date("y.m.d", time());
  5. $dataWczoraj = date("y.m.d", time()-(24*3600));
  6. $sprawdz_data = 0;
  7.  
  8. $zapytanieU = "DELETE FROM `wizyty_ip` WHERE data<'".$dataDzis."' "; // usuwanie ip po 24h
  9. $startU = mysqli_query($polaczenie,$zapytanieU);
  10.  
  11. $zapytanie="SELECT ip FROM wizyty_ip WHERE ip='".$ip."' "; // Sprawdzanie czy ip w bazie
  12. $wynik = mysqli_query($polaczenie,$zapytanie);
  13. $sprawdz_ip = mysqli_num_rows($wynik);
  14.  
  15. $zapytanie2 = mysqli_query($polaczenie,"SELECT `data` FROM `wizyty` ORDER BY `data` DESC LIMIT 0,1");
  16. while($dbW = $zapytanie2 -> fetch_assoc() ) {
  17. $sprawdz_data=$dbW['data']; // Sprawdzanie czy data jest w bazie
  18. }
  19. if ($dataDzis == $sprawdz_data && $sprawdz_ip == 0) // Warunek daty i ip
  20. {
  21. $zapytanie = mysqli_query($polaczenie,"UPDATE wizyty SET wizyty= wizyty+1 WHERE data = '".$dataDzis."'");
  22. $zapytanie2 = mysqli_query($polaczenie,"INSERT INTO `wizyty_ip` (`data`,`ip`)
  23. VALUES ('".$dataDzis."','".$ip."');");
  24. }
  25. elseif ($dataDzis > $sprawdz_data ) // Gdy warunek nie jest spelniony
  26. {
  27. $zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`)
  28. VALUES ('".$dataDzis."',
  29. '1'
  30. );";
  31. $start = mysqli_query($polaczenie,$zapytanie);
  32. $zapytanie2 = "INSERT INTO `wizyty_ip` (`data`,`ip`)
  33. VALUES ('".$dataDzis."',
  34. '".$ip."'
  35. );";
  36. $start2 = mysqli_query($polaczenie,$zapytanie2);
  37. }
  38.  
  39. $zapytanieWiz = mysqli_query($polaczenie,"SELECT wizyty FROM wizyty WHERE data = '". $dataDzis."'; ");
  40.  
  41. while($db = $zapytanieWiz -> fetch_assoc() ) { // Dzisiejsze wizyty
  42.  
  43. $dzis=$db['wizyty'];
  44. }
  45. $zapytanieWiz2 = mysqli_query($polaczenie,"SELECT wizyty FROM wizyty WHERE data = '". $dataWczoraj."'; ");
  46.  
  47. while($db = $zapytanieWiz2 -> fetch_assoc() ) { // Wczorajsze wizyty
  48.  
  49. $wczoraj=$db['wizyty'];
  50. }
  51.  
  52. if (empty($wczoraj))
  53. {
  54. $wczoraj = 0; // Jezeli wczorajsza data nie istnieje
  55. }
  56.  
  57. $zapytanieSuma = "SELECT SUM(wizyty) AS wizyty FROM wizyty"; // Sumowanie wizyt
  58. $wynikS = mysqli_query($polaczenie,$zapytanieSuma);
  59. while($db = mysqli_fetch_array($wynikS) ) {
  60. $lacznie=$db['wizyty'];
  61. }
  62.  
  63. include("templatki/wizyty.html");
  64.  
  65. ?>


Powiem ci usunolem warunki i wtedy UPDATE dziala nie wiem co sie zrabalo ze przestalo dzialac cos mam z tymi warunkami jak pozmienialem pola bazy danych ale nie wiem co kombinuje narazie i nic
viking
Jak grochem o ścianę. Wszyscy piszą co masz zmienić, nawet dałeś dziękuję dla linka, a ty dalej swoje.
nospor
y.m.d
Kurcze, jak grochem o sciane... zamykam. Gdy spowazniejesz (nie wczesniej niz za rok wink.gif ) zapraszam ponownie
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.