Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odliczanie do 1 i usunięcie wpisu z tabeli.
Forum PHP.pl > Forum > Bazy danych
mayerboss
Witam was wszystkich, przed chwilą dokonałem rejestracji na tym forum z nadzieją że uzyskam od was drodzy użytkownicy pomoc.

Stworzyłem swój panel jest to swoisty panel do banowania ludzi na serwerach gry i mam pewien problem.

System działa na serwerach ale nie mam pojęcia jak zrobi odliczanie czyli:

Banując uzupełniam tabelę
  1. Nick: Nick_gracza
  2. Powód: wiadomo
  3. Czas: (w minutach)


Chciałbym by skrypt odliczał każdy z banów pojedynczo.
Zbanowałem gracza
  1. Adam
  2. Łamiesz zasady gry
  3. 10

Chciałby by odliczało od 10 do 1 [ co minute zmieniając wpis np z 10 (mija minuta) 9 (itd) ] i gdy dojdzie do 1 usunie wpis, dlaczego 1 = usuniecie ? Dlatego że 0 to permanentny ban.

Prosił by o pomoc gdyż ja nie mam zielonego pojęcia jak to zrobić, z góry dziękuje i pozdrawiam wszystkich którzy tutaj zawitali.
maly_swd
Poczytaj o CRONie i tam mozesz ustawic sobie co ile ma sie wykonywac skrypt. W skrypcie dajesz cala obsluge... i masz to co chcesz
mayerboss
Problem jest w tym że jak mogę zrobić odliczanie w dól jeżeli mam liczbę na przykład 600 by co minutę się zmieniała o jedno oczko w dół (599 itd).
W cronie można ustawić chyba że jak tabela_x == 1 delete tak ?

Nigdy takich rzeczy nie robiłem.
maly_swd
Cron = harmonogram , czyli cos co uruchamia o okreslonej porze (czestotliwosci) jakis tam plik np. check.php

w pliku check.php
1. pobierasz z bazy ile jest minut ban
2. sprawdzasz if ile=1 then delete ban
else if ile>1 then {ile=ile-1; update bazy z banem set ile=$ile;}
3. exit;

zrozumiale:) ?
mayerboss
Tak smile.gif Dziękuje maly_swd będę działać.

  1. <?php
  2. require "include/config.php";
  3. $conn=mysql_connect($dbhost,$dbuser,$dbpassword) or die(mysql_error());
  4. $tmp_query2="SELECT (*) FROM amx_wanted";
  5.  
  6. if ($bantime == 1)
  7. {
  8. $tmp_query="DELETE FROM amx_wanted WHERE bantime = '1'";
  9. }
  10. else if($bantime > 1 )
  11. {
  12. bantime == bantime-1;
  13. $tmp_query="UPDATE amx_wanted SET bantime = '$bantime'";
  14. }
  15. ?>


Odświeżam. Niestety nie działa mi on, może ktoś zobaczyć o co chodzi ?
maly_swd
  1. <?php
  2. require "include/config.php";
  3. $conn=mysql_connect($dbhost,$dbuser,$dbpassword) or die(mysql_error());
  4. $tmp_query2="SELECT (*) FROM amx_wanted"; // gdzie tu wykonujesz mysql_query() i mysql_fetch_array()?
  5.  
  6.  
  7. $bantime=$pobrana_tablica_z_bazy['bantime'];
  8.  
  9. if ($bantime == 1)
  10. {
  11. $tmp_query="DELETE FROM amx_wanted WHERE bantime = '1'"; // gdzie tu wykonujesz mysql_query() i mysql_fetch_array()?
  12. }
  13. else if($bantime > 1 )
  14. {
  15. bantime == bantime-1; // dwa znaki == to sprawdzenie, a przypisujesz przez = .. drugie to gdzie dolarek przed zmienna? powinno byc $bantime=$bantime-1; (albo $bantime--;)
  16.  
  17.  
  18. $tmp_query="UPDATE amx_wanted SET bantime = '$bantime'"; // gdzie tu wykonujesz mysql_query() i mysql_fetch_array()?
  19. }
  20. ?>
mayerboss
Poprawiłem lecz nie ma żadnych wyników przy wczytaniu tego z poziomu przeglądarki.

  1. <?php
  2. require "include/config.php";
  3. $conn=mysql_connect($dbhost,$dbuser,$dbpassword) or die(mysql_error());
  4. $result = mysql_query('SELECT * FROM amx_wanted')
  5. or die(mysql_error());
  6.  
  7.  
  8. $bantime=$pobrana_tablica_z_bazy['bantime']; // nie mam pojecia co z tym ?
  9.  
  10. if ($bantime == 1)
  11. {
  12. $result = mysql_query('DELETE FROM amx_wanted WHERE bantime=1')
  13. or die(mysql_error());
  14. }
  15. else if($bantime > 1 )
  16. {
  17. $bantime = $bantime-1;
  18.  
  19.  
  20. $result = mysql_query('UPDATE amx_wanted SET bantime = $bantime')
  21. }
  22.  
  23. ?>
maly_swd
  1. <?php
  2. require "include/config.php";
  3. $conn=mysql_connect($dbhost,$dbuser,$dbpassword) or die(mysql_error());
  4. $result = mysql_query('SELECT * FROM amx_wanted')
  5. or die(mysql_error());
  6.  
  7. while($dane=mysql_fetch_array($result)){
  8.  
  9.  
  10. $bantime=$dane['bantime'];
  11. $id_user=$dane['id_user'];
  12.  
  13.  
  14. if ($bantime == 1)
  15. {
  16. $result = mysql_query("DELETE FROM amx_wanted WHERE bantime=1 and id_user=$id_user")
  17. or die(mysql_error());
  18. mysql_fetch_array($result); //?? co chcesz TYM POBRAC? przy delete tego sie nie uzywa
  19. }
  20. else if($bantime > 1 )
  21. {
  22. $bantime = $bantime-1;
  23.  
  24.  
  25. $result = mysql_query("UPDATE amx_wanted SET bantime = $bantime where id_user=$id_user") // poczytaj o roznicy ' a "
  26. mysql_fetch_array($result); // co chcesz tym pobrac?? przy UPDATE TEZ NIE
  27. }
  28. }
  29.  
  30. ?>


nie wiem czy masz w tej tabeli amx_wanted pole odpowiadajace za ID USERA, jesli tak to podmien nazwy w skrypcie odpowiadajace za $id_user... albo podaj strukture tabeli
mayerboss
Chyba mi się nie uda. Porywam się z motyką na słońce.

Kolumny w amx_wanted.

Cytat
id, nick, bantime, banreason, done

  • id - id usera
  • bantime - czas
  • banreason - powód
  • done - 1 niesprawdza 0 - serwer sprawdza.


  1. <?php
  2. require "include/config.php";
  3. $conn=mysql_connect($dbhost,$dbuser,$dbpassword) or die(mysql_error());
  4. $result = mysql_query('SELECT * FROM amx_wanted')
  5.  
  6. while($dane=mysql_fetch_array($result));
  7. {
  8. $bantime=$dane['bantime'];
  9. $id=$dane['id_user'];
  10.  
  11. if ($bantime == 1)
  12. {
  13. $result = mysql_query("DELETE FROM amx_wanted WHERE bantime=1 and id_user=$id")
  14. }
  15. else if($bantime > 1 )
  16. {
  17. $bantime = $bantime-1;
  18. $result = mysql_query("UPDATE amx_wanted SET bantime = $bantime where id_user=$id") // poczytaj o roznicy ' a "
  19. }
  20. }
  21. ?>
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.