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

Problem z pobraniem (Zapisem) Godziny i Daty do Bazy SQL

sql

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

#1 Mr.Skull

    Profesjonalista

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 05.07.2015 19:19

Witam Serdecznie!
 
Jak w temacie otóż baza SQL nie chce mi zapisać godziny i daty, zamiast zapisać godzinę i datę to zapisuje mi powód bana, dlaczego tak jest??
 
Fragment tego kodu:

Wklejka wz3kcf2ro2vr dodana przez Mr.Skull, 05.07.2015 19:16
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public cmdPowodNeo(id)
{
	//new g_Powod[125];
	read_args(g_Powod, 124);
	remove_quotes(g_Powod);
 
	PlayerBanned[Player] = true;
	SaveData(Player);
	Wykonaj(Player);
	Wymus(Player);
}
 
public SaveData(id)
{
	new g_Data[21];
	get_time("%H - %d.%m.%Y", g_Data, 19);
	read_args(g_Data, 20);
	remove_quotes(g_Data);
 
	new Temp[512], Data[1];
	Data[0] = id;
 
	new PlayerName[32], PlayerSteamID[32], PlayerIP[32];
	get_user_name(id, PlayerName, charsmax(PlayerName));
	get_user_authid(id, PlayerSteamID, charsmax(PlayerSteamID));
	get_user_ip(id, PlayerIP, charsmax(PlayerIP), 1);
 
	format(Temp,charsmax(Temp),"INSERT INTO `Bany` (`Banned_Nick`, `Banned_SteamID`, `Banned_IP`, `Admin_Nick`, `Admin_SteamID`, `Powod`, `Wykonane`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s');", PlayerName, PlayerSteamID, PlayerIP, AdminName, AdminSteamID, g_Powod, g_Data);
	SQL_ThreadQuery(SqlTuple,"IgnoreHandle", Temp, Data, 1);
	return PLUGIN_HANDLED;
}

 

 

Za wszelką pomoc będę bardzo wdzięczny! ;)


Użytkownik Mr.Skull edytował ten post 05.07.2015 19:32

  • +
  • -
  • 0

#2 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 06.07.2015 11:00

Bo po 1. robisz to ŹLE!

 

Jaki sens jest w zapisywaniu daty bana jako string w bazie danych? Powodzenia później w próbie wybrania wszystkich banów z konkretnego dnia, dla przykładu.

 

Jaki jest sens rezygnowania z powodu bana i próby zapisania daty zamiast niego?

 

Po 2. sam sobie nadpisujesz poprzednio pobraną datę, powodem bana. Linia 17 w Twojej wklejce, wystarczy ją usunąć.

 

Zrób to po ludzku i dodaj nową kolumnę w bazie danych, w której będziesz zapisywał czas bana.


  • +
  • -
  • 1
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#3 Mr.Skull

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 06.07.2015 16:23

Szczerze mówiąc to ja się dopiero uczę SQL, tak więc na tym pluginie się uczę dopiero, a co do tematu co pisałem to już właśnie sobie poradził 9 godziny temu sposobem że usunąłem 17 i 18 linie. Lecz jestem bardzo wdzięczny za chęci pomocy, dziękuje! :)

 

Mam jeszcze jedno pytanie ponieważ sprawdzanie Nicku, SteamID, i IP (czyli sprawdza czy ma Bana)  mam zrobione takim sposobem:

Wklejka 22024l49nv7oo dodana przez Mr.Skull, 06.07.2015 16:18
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
public LoadData(id)
{
	new Temp[512], Data[1];
	Data[0] = id;
 
	new PlayerName[32], PlayerSteamID[32], PlayerIP[32];
	get_user_name(id, PlayerName, charsmax(PlayerName));
	get_user_authid(id, PlayerSteamID, charsmax(PlayerSteamID));
	get_user_ip(id, PlayerIP, charsmax(PlayerIP), 1);
 
	format(Temp,charsmax(Temp),"SELECT * FROM `Bany` WHERE (`Bany`.`Banned_Nick` = '%s') OR (`Bany`.`Banned_SteamID` = '%s') OR (`Bany`.`Banned_IP` = '%s');", PlayerName, PlayerSteamID, PlayerIP);
	SQL_ThreadQuery(SqlTuple, "RegisterClient", Temp, Data, 1);
	return PLUGIN_HANDLED;
}
 
public RegisterClient(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
	if(FailState == TQUERY_CONNECT_FAILED)
		log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error);
	else if(FailState == TQUERY_QUERY_FAILED)
		log_amx("Load Query failed. [%d] %s", Errcode, Error);
 
	new id;
	id = Data[0];
 
	if(SQL_NumResults(Query) > 0) 
		PlayerBanned[id] = true;
	else 
	{
		PlayerBanned[id] = false;
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}

Lecz jak teraz zrobić zapytanie do bazy aby pobrać Nick Admina oraz Powód Bana?
Gdyż myślę i myślę nad tym od 8 godzin i nie mogę wy myśleć jak to zrobić :(

 

 


  • +
  • -
  • 0

#4 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 06.07.2015 17:53

Już masz zrobione!

Problem nie leży w zapytaniu, tylko z pobraniem wyników tego zapytania. Poczytaj o SQL_ReadResult i SQL_FieldNameToNum.
  • +
  • -
  • 1
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#5 Mr.Skull

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 06.07.2015 19:15

Nie zbyt rozumiem SQL_ReadResultfavicons.png i SQL_FieldNameToNumfavicons.png. (coś tam rozumiem lecz nie wiem jak to wykorzystać)

 

Tak więc można prosić jakiś przykład?? Ponieważ jak zrobię tak:

    format(Temp,charsmax(Temp),"SELECT * FROM `Bany` WHERE (`Bany`.`Banned_Nick` = '%s') OR (`Bany`.`Banned_SteamID` = '%s') OR (`Bany`.`Banned_IP` = '%s') OR (`Bany`.`Admin_Nick` = '%s') OR (`Bany`.`Powod` = '%s');", PlayerName, PlayerSteamID, PlayerIP, AdminName, g_Powod);

To wtedy Admina nick też będzie traktowany jako zbanowany (mogę się mylić lecz wątpię), dlatego właśnie nie wiem jak to zrobić :(


Użytkownik Mr.Skull edytował ten post 06.07.2015 19:16

  • +
  • -
  • 0

#6 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 06.07.2015 19:44

Mówiłem, że zapytanie jest OK!

To, jakie kolumny zwróci Ci z bazy danych kompletnie nie zależy od tego co jest po WHERE w zapytaniu, zależy to od tego co jest pomiędzy SELECT, a WHERE. W tym przypadku jest *, która oznacza wszystkie kolumny.
  • +
  • -
  • 1
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#7 Mr.Skull

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:175
  • Imię:Tajemnica
  • Lokalizacja:Woj. Wielkopolskie
Offline

Napisano 06.07.2015 20:02

Dziękuje za chęci pomocy. Lecz chyba jednak jestem za głupi na naukę SQL, tak więc można jaśniej? Lub najlepiej gotową funkcje prosić?


  • +
  • -
  • 0

#8 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 09.07.2015 09:49

Jeszcze raz powtórzę: ZAPYTANIE SQL Z POSTA #3 JEST W PEŁNI GOTOWE, NIC W NIM NIE MUSISZ ZMIENIAĆ !!!

Teraz wszystko co musisz zrobić to wyciągnąć wynik zapytania do odpowiednich zmiennych, a do tego podałem Ci 2 linki do dokumentacji...
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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

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