now the next step... that SIGNED IN user is taken to a menu with links to select their topics or units. HOWEVER only a PARTICULAR link can be followed depending on what grade they've achieved in a NECESSARY UNIT for example to do advanced maths u need beginners maths = PASS. if = fail then user cannot proceed.
heres my sql as well as the trigger ive made an attempt at...

Both triggers would never execute ELSE part of the IF statement, because - when SELECT finds nothing, Oracle will raise NO-DATA-FOUND exception and, as you didn't handle it, will propagate it to end user. Therefore, perhaps you should do it as follows:

and that 6 digit code was just an example of specific data underneath the unit_code column. (123456 being the unit_code for a subject like beginner maths)
'persons' is the name of the table (sorry about the poor choice of name).

my approach on designing that second trigger was to design it in a similar way to the login trigger but i got muddled up with the select statement.

basically i want my trigger to do this:
1) the logged in user (a.k.a CURRENT person_id) pushes the link
2) then that trigger checks the grade of the necessary subject (unit_code)
3) for example if the unit_code (which is 123456) = pass, then proceed to the next block
4) or else if the unit_code (123456) = fail, then you cannot proceed as you don't have a pass

If the actual data is 123456 it can't ever = 'pass' or 'fail' can it?
So what is the actual relationship between unit_code and pass/fail?
And as for persons, there's nothing wrong with the name, but you can't just reference a table in the where like that without including it in the from.
What is the relationship between grades and persons?

the unit 123456 can = 'pass' or 'fail' because its a foreign key from another table called units.
the relationship between 'persons table' and 'grades table' is one to many
the relationship between 'units table' and 'grades table' is also one to many
the primary key is the grade_code which is also a sequence

therefore the grades table is looked at like this:

the table requires one to many person_ids and one to many unit_codes
each row defines whether that person has passed or failed a unit_code

i just wanted to know the correct structure to build the button trigger for my problem...
which is... if the current user has a pass in this unit,
then he/she can proceed to the next block, otherwise an alert will be raised

ok thanks
and another question about global variables...
suppose i wanted to set the person_id as a global variable on the trigger for the login form
what would be the correct structure to accomplish this?

Eh? Please, do yourself a favor and READ what I told you to. In order to do that, while in Forms Builder, go to Help menu, choose Online Help, go to Search tab, search for "global variables" and read what's in there.