Ruud wrote:In the phpbb database, all anonymous posts have `poster_id`= -1. There is a predefined "Guest" with this ID in the user table.
When you are posting anonymously, there's a "username" field in which you can enter your name. This name is saved in the `posts` table in the `poster_username` field.
with Ruud's explanation,
the light finally dawns. (sorry, i'm slow.)
- posts when not logged-in
were immediately marked poster_id=-1 - for posts of properly-cancelled users (invalid e-mail),
the database (Topics and Posts) was properly updated to poster_id=-1 - but when Nick67 and rep'nA ( and possibly others ) were improperly cancelled, Topics and Posts were not updated to poster_id=-1, thus the corrupt database -- the join will not retrieve those topics or posts for which poster_id is not found in the table of users -- this explains the strange phenomena observed -- and since the original poster_id is still recorded, it also allows us to recover these posts
do i still remember some SQL ?
first find any orphaned Topics (later do same for Posts)
- select topic_id , poster_id from Topics
where poster_id not in (select user_id from Users)