And in this very thread.
Ben ,'The Killer In Me'
Buffistas Building a Better Board ++
Do you have problems, concerns, or recommendations about the technical side of the Phoenix? Air them here. Compliments also welcome.
Huh.
Yesterday, this thread was fine. I double checked. Because I noticed the problem in Natter 39, which is the most recent thread, and because last time, the threads that were affected with a similar problem were both newish, I went backwards, from Natter (which is thread number 151), to Bitches (150), all the way to this thread (146). This thread and the closed Natter 38 (thread 147) were fine, so I stopped going backwards.
I searched all of the threads that weren't archived, checking post_id=3 and found that as far back as thread 132 the month is missing. Let's see if this HTML works...
Thread ID Missing Month? 132 Y 133 N 134 Y 135 N 136 Y 137 N 138 N 139 N 140 Y 141 N 142 N 143 Y 144 N 145 N 146 Y 147 N 148 Y 149 Y 150 Y 151 Y
Without seeing the code, it's hard to say what's going on; but, the available months in the select box seems to be dependent upon the months available within that particular thread. Perhaps there is something unique to these threads date-wise that's causing this error?
Ok, I think I found a correlation. Posts with missing months in the jump control have posts in October. I'm trying to find something I read a long while ago about a y2k-type issue in 2005... but maybe that's just my imagination. Anyway, here's some more data:
Thread ID Missing Month? First Post Last Post 132 Y 2/16 10/3 133 N 2/22 5/23 134 Y 3/5 10/3 135 N 3/11 9/28 136 Y 3/14 10/3 137 N 5/23 4/28 138 N 3/29 5/18 139 N 4/28 6/7 140 Y 5/10 10/1 141 N 5/18 7/12 142 N 6/7 7/14 143 Y 6/23 10/3 144 N 7/12 9/1 145 N 7/14 8/21 146 Y 7/23 10/3 147 N 8/21 9/22 148 Y 8/25 10/3 149 Y 8/31 10/3 150 Y 9/1
All but one of the working threads on that list are closed, but I just posted in thread #135 (Buffy and Angel 1), and sure enough, that broke the month box.
Hey! Quit breaking stuff!
It was an accident...
Uh huh.
I had to go out, but I gave this some thought. As interesting as it would be to solve this problem, I think there's a more practical solution. I understand trying to limit the choices to possible values, but you're almost always going to end up with invalid choices, particularly with the month and day fields. My recommendation would be as follows:
Year: Continue with the way it is now. It's fairly inexpensive performance-wise to find the minimum and maximum dates in a thread and extract the year from those dates.
Month: List all months, Jan - Dec (you can keep the digits behind the scenes with the html 'value' tag if that's more convenient... humans tend to understand three digit months faster than translating a digit).
Day: List all days, 1 - 31.
The worst that will happen if the user selects an invalid date (i.e. a date not within the thread's time frame) is no posts are returned. You can clue the user into valid dates by printing the first post date nearby, if you want. Hmm... not sure what the behavior would be if a user selected Feb 31, 2005 (for example). I suppose you're going to need some date validation code before using the supplied date in a query.
This way, you save yourself a couple of queries per page view and it simplifies things which is usually a good thing.