←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Sprawdzenie czy jest w bazie

Zablokowany

  • +
  • -
karololo - zdjęcie karololo 25.03.2012

Witam,
Czy kod jest prawidłowy? Chcę aby sprawdzał czy nasze steamid jest w bazie, jeśli jest robi x, jeśli nie to y.

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define PLUGIN "Sql"
#define VERSION "1.0"
#define AUTHOR "Ja"
new Handle:g_SqlHandle
new g_Query[512]
new g_Host[] = x
new g_User[] = x
new g_Pass[] = x
new g_Db[] = x

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(1.0,"sql_init")
}
public sql_init() {
g_SqlHandle = SQL_MakeDbTuple(g_Host,g_User,g_Pass,g_Db)

return PLUGIN_HANDLED
}
public client_putinserver(id) {
new authid[36]
new Data[1]
Data[0] = id

get_user_authid(id,authid,35)

format(g_Query,511,"SELECT * FROM `x` WHERE `steamid` = '%s'",authid)
SQL_ThreadQuery(g_SqlHandle,"register_client",g_Query,Data,1)

return PLUGIN_HANDLED
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
new id
id = Data[0]
new authid[36]

get_user_authid(id,authid,35)

if(SQL_NumResults(Query) < 1) {
//nie ma jeszcze naszego steamid w bazie
} else {
//nasze steamid jest juz w bazie
}
return PLUGIN_HANDLED
}
public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
SQL_FreeHandle(Query)

return PLUGIN_HANDLED
}
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 25.03.2012

Powinno zadziałać, możesz też zrobić tak :
	if(SQL_NumRows(Query))
	{
		//Jest !
	} 
	else
	{
		//Dodaj
	}
Odpowiedz

  • +
  • -
karololo - zdjęcie karololo 25.03.2012

Nie wiem czemu, ale wyświetla, że jest chociaż w bazie nie ma ;/
Nie dodaje również do bazy,

format(g_Query,511,"INSERT INTO `x` (`id`, `steamid`) VALUES ('', '%s')", authid)
SQL_ThreadQuery(g_SqlHandle,"IgnoreHandle",g_Query)

Użytkownik Poprostu Maniac edytował ten post 25.03.2012 17:41
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 25.03.2012

nie widzę tworzenia tabeli

if( !SQL_MoreResults( Query ) ) {
  //nie ma jeszcze naszego steamid w bazie
} else { 
  //nasze steamid jest juz w bazie
}
Odpowiedz

  • +
  • -
karololo - zdjęcie karololo 26.03.2012

Dalej wykonuje to, że steamid jest już w bazie, pomino tego, że tak naprawdę go tam nie ma.
Bazę oczywiście mam, ale utworzoną ręcznie. Jakieś pomysły?

@Edit
Właśnie kolega mi napisał, że hosting z którego korzystamy przeprowadza tzw. "przenosiny" więc IP się zmieniło i stąd te 'problemy'. ;)
Użytkownik Poprostu Maniac edytował ten post 26.03.2012 15:08
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 26.03.2012

Dalej wykonuje to, że steamid jest już w bazie, pomino tego, że tak naprawdę go tam nie ma.

nie możliwe pokaż screen bazy sprawdź logi
Odpowiedz

  • +
  • -
sharkowy - zdjęcie sharkowy 26.03.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany