Sziasztok, nemrégiben kezdtem el SQL-el szkriptelni és elakadtam. Xampp -al akarok localhoston tárolni egyenlőre, le i töltöttem majd az SQL -t és az Apache-t élindítottam. Pawnoba kapcsolódtam rá ahogy leírták. De valamiért nem működik. R/40-est használok és több gond is van vele.
Itt a kód:
#include < a_samp >
#include < zcmd >
#include <sscanf2>
#include < dini >
#include < dudb >
#include < fixchars.h >
#include < float >
#include < core >
#include <GetVehicleColor>
#include <streamer>
#include <a_mysql>
//-----------------------------------------[Dialogs]---------------------------------
#define login 1
#define register 2
//-----------------------------------------------------------------------------------
#pragma unused ret_memcpy
#pragma unused PRIVATE_Last_Money
new kapcsolat;
new all[1024];
main()
{
}
public OnGameModeInit()
{
kapcsolat = mysql_connect(\"localhost\",\"root\",\"\",\"dm\");
if(kapcsolat != -1)
{
format(all, sizeof all, \"[MySQL] - Sikeres csatlakozas! Csatlakozás értéke: %d. %d\",mysql_errno(kapcsolat),kapcsolat);
printf(all);
}
else
{
format(all, sizeof all, \"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat),kapcsolat);
printf(all);
SendRconCommand(\"exit\");
}
SetGameModeText(\"1.0 BETA\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
format(all, sizeof all, \"SELECT * FROM Karakterek WHERE Nev = \'%s\'\", pname(playerid));
mysql_tquery(kapcsolat, all, \"Login\", \"d\", playerid);
return 1;
}
forward Login(playerid);
public Login(playerid)
{
SendClientMessage(playerid, -1, \"Meghívás, lekérdezés elött\");
if(cache_get_row_count() == 0)
{
SendClientMessage(playerid, -1, \"Nem létezik ez a felhasználó\");
format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek regisztrálj, írj be egy tetszőleges jelszót majd nyomj \'Regisztrál\' gombra!\",pname(playerid));
ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
else
{
SendClientMessage(playerid, -1, \"Létezik\");
for(new i = 0; i < 35; i++) { SendClientMessage(playerid,-1,\"\"); }
format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek írd be a jelszót, majd kattints a \'Mehet\' gombra!\",pname(playerid));
ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
return 1;
}
Ha megy a Xampp hanem a konzol sikeres csatlakozást ír, és a szerveren se jelenik meg semmi. Kérlek valaki magyarázza el mi a hiba, fontos lenne. Előre köszönöm.
Első:
new MySQL:kapcsolat;
Második:
if(!mysql_errno(kapcsolat))
{
format(all, sizeof all, \"[MySQL] - Sikeres csatlakozas! Csatlakozás értéke: %d\",kapcsolat);
printf(all);
}
else
{
format(all, sizeof all, \"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat),kapcsolat);
printf(all);
SendRconCommand(\"exit\");
}
Mivel a mysql_errno az a hiba ID-jét adja vissza, így érdemes ezzel megnézni, hogy van-e hiba a csatlakozásban.
Az elsőnél meg csak szimplán hiányzott a MySQL: tag.
ha így sem jó, akkor küldj egy MySQL logot.
Tessék , megcsináltam neked.
Olvasd el a kommenteket amiket beletettem.
+ Ezt is nézd át , sokat segít. MySQL R40 - WIKI
#include < a_samp >
#include < zcmd >
#include < sscanf2 >
#include < dini >
#include < dudb >
#include < fixchars.h >
// Felesleges includeolni a floatot és a core-t , mivel alapból bennevannak az a_samp includeban.
#include <GetVehicleColor>
#include <streamer>
#include <a_mysql>
//-----------------------------------------[Dialogs]---------------------------------
#define login 1
#define register 2
//-----------------------------------------------------------------------------------
new MySQL:kapcsolat; // MySQL: előtagot kell használni.
new all[1024];
main()
{}
public OnGameModeInit()
{
kapcsolat = mysql_connect(\"localhost\",\"root\",\"\",\"dm\");
if(mysql_errno(kapcsolat) == 0)
{
//felesleges ide a format.
print(\"[MySQL] - Sikeres csatlakozas!\");
}
else
{
//felesleges ide a format.
printf(\"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat));
SendRconCommand(\"exit\");
}
SetGameModeText(\"1.0 BETA\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572,