[Pomoc]Mysql Problem


Započeo Dobrica, Jul 14, 2014, 15:17:18 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: mysql
Detaljan opis problema: Radilo je sve dobro dok nisam dodao spol,tacnije sada nece da prikaze nijedan dialog,sve lepo povezano.
Dio skripte:
#include < a_samp >
#include < a_mysql >
#include < streamer >
#include < sscanf2 >
#include < foreach >
#include < YSI\y_commands >

#define SERVER_NAME "{FF0000}MYSQL {FFFFFF}- TESTING"
#define SERVER_MAP "San Andreas"
#define SERVER_SCRIPT "mysql - v1.0b"
#define SERVER_FORUM "www.beta-test.com"

#define SQL_HOST			"localhost"
#define SQL_USER			"root"
#define SQL_DB				"samp"
#define SQL_PW				""

#define DIALOG_LOGIN 		1
#define DIALOG_REGISTER		2
#define DIALOG_SPOL         3

#define SPD ShowPlayerDialog
#define SCM SendClientMessage

#define function%0(%1) \
			forward%0(%1); \
			public%0(%1)

#define SPFD(%0,%1,%2,%3,%4,%5,%6,%7) \
			format(gDialogMsg, sizeof(gDialogMsg), %4, %7); \
			SPD(%0, %1, %2, %3, gDialogMsg, %5, %6)

new BazaConnect, gDialogMsg[250], gQuery[300], QueryOutput[1500];
	
enum E_PLAYER_DATA
{
	E_PLAYER_PASSWORD[33],
	E_PLAYER_CASH,
	bool:E_PLAYER_LOGGED,
	E_PLAYER_SPOL
}
new	
	gPlayerData[MAX_PLAYERS][E_PLAYER_DATA];

main()
{
	print("mysql r33 v1.0b");
}

public OnGameModeInit()
{
    SetGameModeText(SERVER_SCRIPT);SendRconCommand("mapname "SERVER_MAP""); SendRconCommand("weburl "SERVER_FORUM"");DisableInteriorEnterExits();
	UsePlayerPedAnims();EnableStuntBonusForAll(0);ShowPlayerMarkers(false);SetNameTagDrawDistance(20);AllowInteriorWeapons(1);ManualVehicleEngineAndLights();
	mysql_debug();
	BazaConnect = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PW);
	return true;
}

public OnGameModeExit()
{
	mysql_close( BazaConnect );
	return true;
}

public OnPlayerConnect(playerid)
{
	format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", GetName(playerid));
	mysql_function_query(BazaConnect, gQuery, true, "CheckUser", "i", playerid);
	return true;
}

public OnPlayerRequestClass(playerid, classid)
{
	format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' LIMIT 1", GetName(playerid));
	mysql_function_query(BazaConnect, gQuery, true, "CheckUser", "i", playerid);
	return true;
}

public OnPlayerDisconnect(playerid, reason)
{
	format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d, `Cash` = %d WHERE `Username` = '%e'",gPlayerData[playerid][E_PLAYER_SPOL],GetPlayerMoney(playerid), GetName(playerid));
	mysql_function_query(BazaConnect, QueryOutput, false, "", "");
	return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
		case DIALOG_LOGIN:
		{
			if(response)
			{
				format(gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Username` = '%e' AND `Password` = md5('%e') LIMIT 1", GetName(playerid), inputtext);
    			mysql_function_query(BazaConnect, gQuery, true, "LoginUser", "i", playerid);
			}
			else Kick(playerid);
		}
		case DIALOG_REGISTER:
		{
			if(response)
			{
				strins(gPlayerData[playerid][E_PLAYER_PASSWORD], inputtext, 0);
				mysql_format(1, gQuery, "INSERT INTO `users` (`Username`, `Password`, `Cash`) VALUES ('%e', md5('%e'), 0)", GetName(playerid));
				SPD(playerid, DIALOG_SPOL, DIALOG_STYLE_MSGBOX," - REGISTRACIJA","Kojeg ste pola?","Musko","Zensko");
			}
			else Kick(playerid);
		}
		case DIALOG_SPOL:
		{
			if(response)
			{
			    SetPlayerScore(playerid,1);
			    gPlayerData[playerid][E_PLAYER_SPOL] = 1;
  				
				SpawnPlayer(playerid);
				
				format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d",gPlayerData[playerid][E_PLAYER_SPOL]);
				mysql_function_query(BazaConnect, QueryOutput, false, "", "");
			}
			if(!response)
			{
			    SetPlayerScore(playerid,1);
			    gPlayerData[playerid][E_PLAYER_SPOL] = 2;
				
				
                SpawnPlayer(playerid);
                
                format(QueryOutput, sizeof(QueryOutput),"UPDATE `users` SET `Spol` = %d",gPlayerData[playerid][E_PLAYER_SPOL]);
				mysql_function_query(BazaConnect, QueryOutput, false, "", "");
			}
		}
	}
	return true;
}

function CheckUser(query[], index, extraid, connectionHandle)
{
	mysql_store_result();
	
	if(mysql_num_rows() == 1)
	{
		SPFD(index, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SERVER_NAME" - LOGIRANJE", "{FFFFFF}Dobrodošao na "SERVER_NAME"server, %s!\n\nTi si registrirani korisnik te se trebaš logirati.\nUpiši u polje ispod svoju lozinku da se logiraš.", "Login", "Izlaz", GetName(index));
	}	
	else 
	{
		SPFD(index, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, SERVER_NAME" - REGISTRACIJA", "{FFFFFF}Dobrodošao na "SERVER_NAME" server, %s!\n\nTi nisi registrirani korisnik te se trebaš registrirati.\nUpiši u polje ispod svoju lozinku da se registriraš.", "Register", "Izlaz", GetName(index));
	}
	
	mysql_free_result();
	return true;
}

function LoginUser(query[], index, extraid, connectionHandle)
{
	mysql_store_result();
	
	if(mysql_num_rows() == 1)
	{
		sscanf(query, "e<p<|>{ds[24]}s[33]dddl>", gPlayerData[index]);
		gPlayerData[index][E_PLAYER_LOGGED] = true;
		GivePlayerMoney(index, gPlayerData[index][E_PLAYER_CASH]);
		SpawnPlayer(index);
	}
	else 
	{
		SCM(index,-1,"{FF0000}ERROR: {FFFFFF}Pogrešna lozinka!");
		SPFD(index, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, SERVER_NAME" - LOGIRANJE", "{FFFFFF}Dobrodošao na "SERVER_NAME"server, %s!\n\nTi si registrirani korisnik te se trebaš logirati.\nUpiši u polje ispod svoju lozinku da se logiraš.", "Login", "Izlaz", GetName(index));
	}
	
	mysql_free_result();
	return true;
}

function RegisterUser(query[], index, extraid, connectionHandle)
{
	SpawnPlayer(index);
	return true;
}

function SaveUser(query[], index, extraid, connectionHandle)
{
	format(gPlayerData[index][E_PLAYER_PASSWORD], 32, "\0");
	return true;
}

stock GetName(playerid)
{
	static 
		pName[MAX_PLAYER_NAME];
	
	GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
	return pName;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):

kako mislis nece da pokaze kad se konektujes?
69

Nece da pokaze dialoge niti za login niti za register.

a znaci prije nego si dodao to za spol sve je radilo?
69

Citat: [SF]C++ poslato Jul 14, 2014, 15:35:14 POSLE PODNE
a znaci prije nego si dodao to za spol sve je radilo?
Da nesto sam cackao sa mysql_function_query pa sam resio i sad odjednom kad povezem i konektujem se nema nista nema dialoga.

pa uradi system restore pre nego si to uradio pa onda pokusaj ponovo,
69

Citat: [SF]C++ poslato Jul 14, 2014, 15:39:39 POSLE PODNE
pa uradi system restore pre nego si to uradio pa onda pokusaj ponovo,
radio sam i opet isto,udjem ingame i kao da nije povezano sa bazom a jeste :S
Molim vas pomagajte.

pogledaj mysql log sta ti pise
69

[15:39:59] >> mysql_connect(localhost, root, samp, ******) on port 3306
[15:39:59] CMySQLHandler::CMySQLHandler() - constructor called.
[15:39:59] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "samp" | Username: "root"
[15:40:00] CMySQLHandler::Connect() - Can't connect to MySQL server on 'localhost' (10061) (Error ID: 2003)
[15:40:38] >> mysql_query_callback( Connection handle: 1 )
[15:40:38] >> mysql_query_callback( Connection handle: 1 )
[15:40:43] >> mysql_query_callback( Connection handle: 1 )

pa eto kaze ti da se nemoze uspostavit konekcija ako radis preko xamp proveri jeli upaljen i jesu li podatci dobro uneseni.
69

Ma sve sam proverio i sve je kako treba nije mi jasno zasto nece :S

pa nemoze da se konektuje kazem ti ili nisu uredu podatci ili je localhost nesto u kvaru pogledaj log i sam zakljuci.
69

Citat: [SF]C++ poslato Jul 14, 2014, 15:57:54 POSLE PODNE
pa nemoze da se konektuje kazem ti ili nisu uredu podatci ili je localhost nesto u kvaru pogledaj log i sam zakljuci.
Sve sam pogledao i probao ali opet neeece!

covjece ime baze nije isto kao i baza u modu sta je tebi rekoh ti preko poruke.
69

Citat: [SF]C++ poslato Jul 14, 2014, 17:44:30 POSLE PODNE
covjece ime baze nije isto kao i baza u modu sta je tebi rekoh ti preko poruke.

stavio sam isto i nece :S
sve lepo promenio.

Gde si ti video da baza nije isto ime :S