In order to register variables to the vBulletin GPC array, you use:
PHP Code:
$vbulletin->input->clean_array_gpc('p', array(
'variable1' => TYPE_NOHTML,
'number1' => TYPE_UINT
));
The first parameter should usually be p (POST) or g (GET). Keep in mind that pulling variables through this "cleaning" function does not guarantee that the variables are safe to be used in SQL queries (SQL injection) or printing on the screen (XSS). Unless you're sure it's an integer or of a value that can not be malicious, use $vbulletin->db->escape_string($vbulletin->GPC['variable1']) when it's used in SQL queries.
You can retrieve the variable in your PHP script using $vbulletin->GPC['variable1'];
The variable1 and number1 come from the name attributes you give your input elements in the template. They should match or else it will be empty.
--
$db is just short for $vbulletin->db. However, if you're hooking into a class of vBulletin you might have to use $this->registry->db in order to interact with the database.
query_write should be used for queries that may affect something in the table, such as UPDATE or DELETE queries.
query_first can be used to directly return an array of the first result. This is useful if you want to write less code.
query_read can be used to read from table.
--
Here's a link to the API which might be useful:
https://members.vbulletin.com/api/