First, I hope it wasn't a production database you put an untested trigger on. Always create and test triggers in a development database. For one you will not take your users down while you get the bugs worked out and second, you won't be inserting test data or deleting real records while you test your trigger.
Second, you can post your trigger here and we may be able to spot what is wrong. But you should learn to debug yourself.
Some things to think about in triggers. Don't use select statements (except as part of a subquery to to populate a variable) in triggers. Do not use cursors in a trigger. Usually you will be using the information in the inserted and/or deleted pseudotables. If you aren't, then question why this needs to be trigger. Do not do anything in a trigger that can be done using a constraint; constraints run faster than triggers.
To test triggers write insert, update or delete statements for a wide range of the data inputs expected (include obviously bad data and multiple records). Try to make sure any branches of the code get exercised in your test cases. After each statement run a select stament on any tables that should be affected by the trigger operating and see if the data did get inserted, updated or deleted properly.
So if I have a trigger that inserts into an audit table everytime I delete a record, I would write a delete statement to delete an existing record, then run a select statement on both the base table (to see if the record I intended to delete was deleted) and the audit table to see if the information I intended to add to it was inserted. You get the idea. You can also see that this kind of testing is not possible on a production database or you will destroy real records, add junk records or corrupt existing data!