i have two mysql tables.
the first is called \"chosen\" and consists of id, user_id, and widget_id fields.
the other is called \"widgets\" and includes sever
Basically, you want to select all rows from widgets that have no associated row in chosen for the given $user_id. You can accomplish this with a LEFT OUTER JOIN looking for the rows that didn't match in the chosen table. Something like this:
SELECT w.* FROM widgets as w
LEFT OUTER JOIN chosen as c on c.widget_id=w.widget_id AND c.user_id=$user_id
WHERE c.id IS NULL;
BTW: I recommend using the newer join syntax over the comma delimited tables join syntax. It's easier to read and understand, especially when it comes to outer joins.