ExecuteSQLSelect: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 11: Line 11:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
table executeSQLSelect ( string table, string fields, [ string conditions ], [ int limit ] )
table executeSQLSelect ( string tableName, string fields, [ string conditions ], [ int limit ] )
</syntaxhighlight>
</syntaxhighlight>


===Required Arguments===
===Required Arguments===
*'''table:''' The table you want to query. No spaces allowed.
*'''tableName:''' The table you want to query. No spaces allowed.
*'''fields:''' The fields you want to query. No spaced allowed. Multiple fields should be separated by a comma (,). Wildcard (*) allowed to query all fields in the table. If you use wildcards, please pay attention to the order in which you'll have to retrieve your values from the table.
*'''fields:''' The fields you want to query. No spaced allowed. Multiple fields should be separated by a comma (,). Wildcard (*) allowed to query all fields in the table. If you use wildcards, please pay attention to the order in which you'll have to retrieve your values from the table.


Line 29: Line 29:
On failure:
On failure:


*'''boolean:''' False, when no rows are found or an error occured.
*'''boolean:''' ''false'', when no rows are found or an error occured.




Line 38: Line 38:
executeSQLCreateTable ( "players", "clothes_head_texture TEXT, clothes_head_model TEXT, player TEXT" )
executeSQLCreateTable ( "players", "clothes_head_texture TEXT, clothes_head_model TEXT, player TEXT" )
end
end
addEventHandler ( "onGamemodeMapStart", onMapLoad )


function onPlayerSpawn ( spawnpoint, team )
function onPlayerSpawn ( theSpawnpoint, theTeam )
sourcename = getClientName ( source ) -- get the player's name
sourcename = getClientName ( source ) -- get the player's name
Line 54: Line 55:
-- get the clothes data for the player
-- get the clothes data for the player
    result = executeSQLSelect ( "players", "clothes_head_texture, clothes_head_model", "player = '" .. sourcename .. "'" )
result = executeSQLSelect ( "players", "clothes_head_texture, clothes_head_model", "player = '" .. sourcename .. "'" )
outputChatBox ( "Your head texture is " .. result[1][1] )
outputChatBox ( "Your head texture is " .. result[1][1] )
outputChatBox ( "Your head model is " .. result[1][2] )
outputChatBox ( "Your head model is " .. result[1][2] )
end
end
addEventHandler ( "onPlayerSpawn", onPlayerSpawn )
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Registry_functions}}
{{Registry_functions}}

Revision as of 12:32, 21 August 2007

This function retrieves rows from a table in the database, if they exist. If you pass the table name, along with the columns you want to retrieve (and any conditions for the row) this function will return a table containing the corresponding values.

The SQLite database contains globally stored data and can be used by scripts to store and retrieve data in a structured manner.

The executed SQL query is the following:

[sql]SELECT <fields> FROM <tables> WHERE <conditions> LIMIT <limit>

Syntax

table executeSQLSelect ( string tableName, string fields, [ string conditions ], [ int limit ] )

Required Arguments

  • tableName: The table you want to query. No spaces allowed.
  • fields: The fields you want to query. No spaced allowed. Multiple fields should be separated by a comma (,). Wildcard (*) allowed to query all fields in the table. If you use wildcards, please pay attention to the order in which you'll have to retrieve your values from the table.

Optional Arguments

  • conditions: The conditions for the query. Multiple conditions should be separated by logical operators (AND, OR).
  • limit: Maximum amount of rows to return.

Returns

On success:

  • table: The 2-dimensional table where the results are stored in: table [row_index] [column_index].

On failure:

  • boolean: false, when no rows are found or an error occured.


Example

function onMapLoad ()
	-- create our table, if it doesn't already exist
	executeSQLCreateTable ( "players", "clothes_head_texture TEXT, clothes_head_model TEXT, player TEXT" )
end
addEventHandler ( "onGamemodeMapStart", onMapLoad )

function onPlayerSpawn ( theSpawnpoint, theTeam )	
	sourcename = getClientName ( source )	-- get the player's name
	
	-- try to retrieve the player data from the db
	result = executeSQLSelect ( "players", "player", "player = '" .. sourcename .. "'" )
	if ( result == false ) then	-- see if any data was found at all
		outputChatBox ( "This is your first time here! Welcome " .. sourcename .. "!", source )
		executeSQLInsert ( "players", "'none', 'none', '" .. sourcename .. "'" )
	else
		outputChatBox ( "Welcome back " .. sourcename .. "!", source )
		executeSQLUpdate ( "players", "clothes_head_texture = 'hairgreen', clothes_head_model = 'somehead'",
		"player = '" .. sourcename .. "'" )
	end	
	
	-- get the clothes data for the player
	result = executeSQLSelect ( "players", "clothes_head_texture, clothes_head_model", "player = '" .. sourcename .. "'" )
	outputChatBox ( "Your head texture is " .. result[1][1] )
	outputChatBox ( "Your head model is " .. result[1][2] )	
end
addEventHandler ( "onPlayerSpawn", onPlayerSpawn )

See Also