Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Odświeżanie danych i zapis do bazy sql co x sekundBez przeładowania strony PHP-JS

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 kijkol

    Profesjonalista

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:173
  • Lokalizacja:Witów
Offline

Napisano 12.04.2015 09:41

Moje pytanie brzmi jak zrobić by co x sekund wywołać zapytanie do bazy sql (jeśli otwarta strona).

Mam np. otwartą stronę index.php i tam mam zapytanie o wynik + zapis i żeby mi co x sekund wykonywało to.

Zrobiłem coś na zasadzie pliku odśwież.php gdzie dałem

<meta http-equiv="refresh" content="5; URL=#">

to mi przeładowywało stronę co 5 sekund i działało tak jak chciałem, ale chciałem pozbyć się przeładowania strony, więc zrobiłem coś takiego jak niżej, ale nie zapisuje mi, ani nie odświeża wyniku ;/

<script type="text/javascript">
            $(document).ready(function() {
                var time;
                
                $.ajax({
                    url: 'timer.php',
                    dataType: 'text',
                    success: function(data) {
                        time = data;
                    }
                });
                
                setInterval(function() {
                    if (time > 0)
                    {
                        $('#timer').html('<?php 
						$nick=$_SESSION['nick'];
						$dane = mysql_query("SELECT * FROM `users` WHERE nick='$nick'");
						$d = mysql_fetch_assoc($dane); 
						echo '<table cellspacing="0" class="tabela2"><tr><th style="width: 920px" style="vertical-align: middle;"><font size="6" color="green">Twoja gotówkaa: '.bd_nice_number($d['kasa']).' $</font> </th></tr></table>';
						$query = "UPDATE users SET kasa = '0' WHERE nick = '$nick'";
						if(mysql_query($query))
						echo "";?>');
                        time -= 1;
                    }
                    else if (time == 0)
                    {
                        $('#timer').html('<?php 
						$nick=$_SESSION['nick'];
						$dane = mysql_query("SELECT * FROM `users` WHERE nick='$nick'");
						$d = mysql_fetch_assoc($dane); 
						echo '<table cellspacing="0" class="tabela2"><tr><th style="width: 920px" style="vertical-align: middle;"><font size="6" color="green">Twoja gotówka: '.bd_nice_number($d['kasa']).' $</font> </th></tr></table>';
						$query = "UPDATE users SET kasa = '0' WHERE nick = '$nick'";
						if(mysql_query($query))
						echo "";?>');
                        time -= 1;
                    }
                    else
                    {
                        $.ajax({
                            url: 'timer.php',
                            dataType: 'text',
                            success: function(data) {
                                time = data;
                            }
                        });
                    }
                }, 1000);
            });
            
        </script>
    </head>
    <body>
        <div id="timer"><table cellspacing="0" class="tabela2"><tr><th style="width: 920px" style="vertical-align: middle;"><font size="4" color="green">Sprawdzanie danych...</font> </th></tr></table></div>
    </body>

w pliku timer.php mam czas co ile ma się odświeżać.

 

Może ktoś coś podpowie jak to zrobić ;P

 


  • +
  • -
  • 0

#2 sebul

    Godlike

  • Junior Admin

Reputacja: 2016
Godlike

  • Postów:5411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 12.04.2015 11:10

W ogóle źle do tego podchodzisz. Najpierw musisz wczytać jakiś swój config, gdzie masz wartość co ile ma odświeżać, a potem w pliku gdzie ma się wyświetlać wartość utworzyć skrypt js, który będzie wywoływał inny plik, gdzie będziesz mieć zapytanie sql i w tym pliku musisz zwrócić jsona, czyli http://php.net/manua...json-encode.php. No a potem już podobnie jak to robisz, czyli w funkcji js, jak już dostaniesz jsona, to wrzucasz zwróconą wartość do kontenera timer. A teraz trochę pseudo kodu, bo pewnie się Ci przyda.

// Plik gdzie ma się coś odświerzać
<?php include config ?>

<div id="timer"></div>

<script type="text/javascript">
$(function() {
	odswiezanie();
	setInterval(odswiezanie, sekundy_z_cfg);
}

var odswiezanie = function() {
	$.post('timer.php', {
		nick: jakiś_nick_czy_zmienna
	}, function(data) {
		$('#timer').html(data.wartosc);
	}, 'json');
}
</script>


// Plik gdzie masz zapytanie
$nick = $_POST['nick'];

//Twoje zapytanie

echo json_encode(array('wartosc' => $wynik_zapytania));
I polecam używać mysqli, a najlepiej PDO.
  • +
  • -
  • 1
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Generator tabeli expa - aż do 103600 poziomu

#3 kijkol

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:173
  • Lokalizacja:Witów
Offline

Napisano 12.04.2015 16:27

Chyba jednak mam zbyt małą wiedzę jeszcze by się bawić w takie coś.

Dzięki za podpowiedź może coś się uda z tego zrobić ;P


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych