[eluser]TheFuzzy0ne[/eluser]
The only possible reason I can see for that not to be working, is that the ID is not being passed to the model correctly.
This is why you need to check
everything that's sent to the server.
Is $id set? If it's not, tell the user. Otherwise, set the ID of the blog in the model
Does the specified blog even exist? If it doesn't, tell the user.
Is the ID numeric? If it is, redirect to the correct location, using the slug we got when we tried to confirm the blog ID existed.
Now you can get on with performing validation and what-not. With what you've written, it's quite easy to get your server to issue a warning or an error just by not passing a parameter into the method. Code defensively, and keep those potential errors to an absolute minimum.
[url="http://ellislab.com/forums/viewthread/234745/#1052457"]I've already written some code[/url] to try and help you, and I've commented it too. Although it's untested, I'd say it's pretty much the bare minimum you should do in order to prevent unintentional errors. Please study it, and try to understand what it's doing, and more importantly
why it's doing it. It should be very simple to trace a path through the code so you can see what it's doing.
If you have any questions, I'd be happy to help you out as much as possible. Now, let's make some progress here, because it feels like we're going around in circles!