Hi,
i have a problem with a panel script, by mysql database.
The script is connected to the database, but there are no table in the database, so nothng can be saved, or loaded.
The default table is 'userdata', but in the database, there are no table created and im not a very good scripter, so i ask your help.
is there the mysql part of the script:
-- Database connection info
sqlHostname = "***.**.**.***"
sqlUsername = "*********"
sqlPassword = "*******"
sqlDefaultDatabase = "*********"
sqlDefaultTable = "userdata"
-- Connect to the database
function mySQLConnect()
sqlConnection = mysql_connect(sqlHostname,sqlUsername,sqlPassword,sqlDefaultDatabase)
end
addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),mySQLConnect)
-- Make a new entry to the mySQL database
function checkSqlData(source)
if (sqlConnection == nil) then
mySQLConnect()
end
local player = source
local serial = getPlayerSerial(player)
local entryCheck = sqlConnection:query("SELECT serial FROM "..sqlDefaultTable.." WHERE serial='"..serial.."'")
if (entryCheck) then
local result = mysql_result(entryCheck,1,1)
if (result == "") or (result == nil) then
outputDebugString("New entry added to the mySQL database!")
sqlConnection:query("INSERT INTO "..sqlDefaultTable.." (serial) VALUES ('"..serial.."')")
sqlConnection:query("UPDATE "..sqlDefaultTable.." SET playerName='"..string.gsub(getPlayerName(player),"#%x%x%x%x%x%x", "").."' WHERE serial='"..serial.."'")
end
else
outputDebugString("New entry added to the mySQL database!")
sqlConnection:query("INSERT INTO "..sqlDefaultTable.." (serial) VALUES ('"..serial.."')")
sqlConnection:query("UPDATE "..sqlDefaultTable.." SET playerName='"..string.gsub(getPlayerName(player),"#%x%x%x%x%x%x", "").."' WHERE serial='"..serial.."'")
end
end
addEventHandler("onPlayerJoin",getRootElement(),checkSqlData)
addEventHandler("onResourceStart",getResourceRootElement(getThisResource()),
function()
for i,player in ipairs (getElementsByType("player")) do
checkSqlData(player)
end
end)
-- Load data from the database
function loadPlayerData (player,datatype)
if (sqlConnection == nil) then
restartResource(getThisResource())
end
if (player) and (datatype) then
local serial = getPlayerSerial(player)
local findQuery = sqlConnection:query("SELECT "..datatype.." FROM "..sqlDefaultTable.." WHERE serial='"..serial.."'")
if (findQuery) then
local result = mysql_result(findQuery,1,1)
if not (result == nil) then
if not (result == "") then
mysql_free_result(findQuery)
return result
else
mysql_free_result(findQuery)
return 0
end
else
return 0
end
else
--outputDebugString("Failed to get "..datatype.." for player "..getPlayerName(player).." @ findQuery")
--outputDebugString("mysql_query failed: (" .. mysql_errno(sqlConnection) .. ") " .. mysql_error(sqlConnection))
end
end
end
-- Save data to the database
function savePlayerData (player,datatype,newvalue)
if (sqlConnection == nil) then
restartResource(getThisResource())
end
if (player) and (datatype) and (newvalue) then
local serial = getPlayerSerial(player)
local saveData = sqlConnection:query("UPDATE "..sqlDefaultTable.." SET "..datatype.."='"..newvalue.."' WHERE serial='"..serial.."'")
if (saveData == nil) then
outputDebugString("Error executing the save query: (" .. mysql_errno(sqlConnection) .. ") " .. mysql_error(sqlConnection))
end
end
end
i hope someone can help me.
Regards, Itoko