Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodawanie 1 co 5 sekund
marcinsgdz
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2006

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


Nie umiem sobie poradzić. Mam tabelę.
W której mam status: OK lub liczbę.
Chodzi o to, że funkcja wyżej sprawdza czy dana usługa działa (o 5 sekund) i wypisuje OK. To mam zrobione.
Jeśli jest niedostępna to wpisuje 1 i potem po 5 sekundah sprawdza i jesli dalej nei dział ma dodać znowu 1 itd. Dodaje 6 a nie 1.
Druga sprawa jak zamienić cyfrę gdy usługa odpowie na OK.
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Pokaż kod.
Go to the top of the page
+Quote Post
marcinsgdz
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2006

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


  1. <html>
  2. <head>
  3. <title>WWW</title>
  4. <meta http-equiv="refresh" content="10" />
  5. </head>
  6.  
  7. <body>
  8. <?php
  9.  
  10. include('dbconnect.php');
  11. $rezultat = mysqli_query
  12. ($polaczenie, "SELECT * FROM domeny") or die ("Błąd zapytania do bazy: $dbname");
  13. print "<TABLE CELLPADDING=5 BORDER=1>";
  14. print "<TR><TD>idt</TD><TD>Nazwa</TD><TD>Pracuje</TD><TD>Ilość prób</TD></TR>\n";
  15. while ($wiersz = mysqli_fetch_array ($rezultat)){
  16. $idt = $wiersz[0];
  17. $nazwa = $wiersz[1];
  18. $status = $wiersz[2];
  19. $proba = $wiersz[3];
  20.  
  21.  
  22. $host = $nazwa;
  23. $port = '80';
  24. {
  25. $fp = @fsockopen($host, $port, $errno, $errstr, 30);
  26.  
  27. if ($fp) {
  28. $rezultat1 = mysqli_query ($polaczenie, "UPDATE domeny SET `pracuje`='OK' WHERE `id`=$idt");
  29. }
  30. else {
  31. $rezultat2 = mysqli_query ($polaczenie, "UPDATE domeny SET `pracuje`='Awaria' WHERE `id`=$idt");
  32. }
  33. }
  34. /* if ($liczbaprob = 0){
  35. $rezultat3 = mysqli_query ($polaczenie, "UPDATE domeny SET `ilosc_prob`='0' WHERE `id`=$idt");
  36. }
  37. else{
  38.  
  39. }
  40. */
  41.  
  42. print "<TR><TD>$idt</TD><TD>$nazwa</TD><TD id='liczbaprob'>$status</TD><TD >$proba</TD></TR>\n";
  43. }
  44.  
  45.  
  46. print "</TABLE>";
  47.  
  48. mysqli_close($polaczenie);
  49. ?>
  50. </body>
  51.  
  52. </html>


Ten post edytował marcinsgdz 3.11.2017, 08:29:56
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


SET `ilosc_prob`= `ilosc_prob` + 1
Gdzie masz jakiegoś inserta na pierwsze uruchomienie?
Go to the top of the page
+Quote Post
marcinsgdz
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2006

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


Działa (IMG:style_emoticons/default/smile.gif) tylko, że jak więcej niż jedna strona jest niedostąpna to zamiast 1 dodaje 2 lub 3 it.

  1. <html>
  2. <head>
  3. <title> Strona </title>
  4. <meta http-equiv="refresh" content="10" />
  5. </head>
  6.  
  7. <body>
  8. <?php
  9.  
  10. include('dbconnect.php');
  11. $rezultat = mysqli_query
  12. ($polaczenie, "SELECT * FROM domeny") or die ("Błąd zapytania do bazy: $dbname");
  13. print "<TABLE CELLPADDING=5 BORDER=1>";
  14. print "<TR><TD>idt</TD><TD>Nazwa</TD><TD>Pracuje</TD><TD>Ilość prób</TD><TD>Data wystąpienia Awarii</TD></TR>\n";
  15. while ($wiersz = mysqli_fetch_array ($rezultat)){
  16. $id = $wiersz[0];
  17. $nazwa = $wiersz[1];
  18. $status = $wiersz[2];
  19. $proba = $wiersz[3];
  20. $data = $wiersz[4];
  21. $teraz=date("Y-m-d H:i:s");
  22.  
  23. $host = $nazwa;
  24. $port = '80';
  25. {
  26. $fp = @fsockopen($host, $port, $errno, $errstr, 30);
  27.  
  28.  
  29.  
  30. if ($fp) {
  31. $rezultat1 = mysqli_query ($polaczenie, "UPDATE domeny SET `pracuje`='OK' WHERE `id`=$id");
  32. }
  33. else {
  34. $rezultat2 = mysqli_query ($polaczenie, "UPDATE domeny SET `pracuje`='Awaria' WHERE `id`=$id");
  35. }
  36. }
  37.  
  38.  
  39.  
  40. if ($fp){
  41. $rezultat3 = mysqli_query ($polaczenie, "UPDATE domeny SET `ilosc_prob`='0' WHERE `id`=$id");
  42. }
  43. else{
  44. $rezultat4 = mysqli_query ($polaczenie, "UPDATE domeny SET `ilosc_prob`=`ilosc_prob` + 1 WHERE `pracuje`='Awaria'");
  45. }
  46.  
  47.  
  48. if($fp){
  49. $rezultat5 = mysqli_query ($polaczenie, "UPDATE domeny SET `data` = '-' WHERE `ilosc_prob` = '0'");
  50.  
  51. }
  52. else{
  53. $rezultat6 = mysqli_query ($polaczenie, "UPDATE domeny SET `data` = '$teraz' WHERE `ilosc_prob` = '1'");
  54. }
  55.  
  56. print "<TR><TD>$id</TD><TD>$nazwa</TD><TD>$status</TD><TD>$proba</TD><TD>$data</TD></TR>\n";
  57. }
  58.  
  59.  
  60. print "</TABLE>";
  61.  
  62. mysqli_close($polaczenie);
  63. ?>
  64. </body>
  65.  
  66. </html>


Co może być powodem tego błędnego dodawania?

Ten post edytował marcinsgdz 3.11.2017, 10:08:38
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Wypadało by jeszcze dodać do warunku id rekordów ktore mają być zmodyfikowane. WHERE pracuje = 'Awaria' AND id = x
Go to the top of the page
+Quote Post
marcinsgdz
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2006

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


Działa
  1. $rezultat4 = mysqli_query ($polaczenie, "UPDATE domeny SET `ilosc_prob`=`ilosc_prob` + 1 WHERE `pracuje`='Awaria' AND `id`=$id");
  2.  

Teraz jeszcze, jak status jest OK, to ilosc prób jest 0 i tutaj wstawia w data 0000-00-00 00:00:00. Chodzi o to aby zamiast zer ma być kreska tj. -

  1. if($fp){
  2. $rezultat5 = mysqli_query ($polaczenie, "UPDATE domeny SET `data` = '-' WHERE `ilosc_prob` = '0'");


Ten post edytował marcinsgdz 3.11.2017, 12:12:19
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Pole w bazie ma być odpowiedniego typu datowego a jak nie ma to null a nie jakieś kreski.
Go to the top of the page
+Quote Post
marcinsgdz
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2006

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


Tak doszedłem do też.
A jakbym chciał oboliczyć czas awarii tzn. odjąć czas z pola dat i...
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


To zajrzyj do dokumentacji...
Go to the top of the page
+Quote Post

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 - 12:32