Cleanup & Final Steps10:26 with Hampton Paulk
Let's wrap up our project by cleaning up or user experience a bit.
Let's go back to our films.php file, and then how can we tidy this up. 0:00 Well, we're doing a tri-catch here that's good, but 0:05 what we're not checking is that what do we do if the ID is not set, 0:07 and then if it's not set why would we wanna run this code here? 0:14 So actually let's just get rid of all of this code that's in here, and 0:19 put it inside of our if statement. 0:24 We're actually gonna grab all the way through to line 19 cuz 0:26 there certainly no point of us doing this if we don't have it. 0:29 So we'll go ahead and hit paste in here to drop it in and 0:33 I'm gonna do a quick tidy up. 0:37 [BLANK_AUDIO] 0:39 Okay, so, at this point right now if we look at this code, 0:45 it says if we have an ID, if it's there, it's not empty, 0:49 then we'll go ahead and set our, film ID, make sure it's an integer value. 0:53 And then we'll run a query on our database by going through the prepare statement, 0:59 the bind parameter statement and execute so on so forth. 1:04 But what we're concerned with is if nothing is returned if it 1:07 doesn't actually have anything in it whatsoever, or if the ID is empty. 1:10 So if the ID is not set then we don't wanna run the code, so that's what this is 1:16 covering but now we wanna make sure if we don't actually have a film. 1:21 So let's go down here to the bottom and 1:25 see that if we don't have a film it's not gonna echo any kind of title back to us. 1:27 So let's put an if statement down here to test whether or 1:32 not that film has anything in it. 1:36 Let's do that by making this php tag a little more encompassing. 1:40 We'll actually get rid of the h2 on either side of it. 1:44 And then bring it down a few lines so we can just concentrate on the code. 1:49 Okay. 1:55 So now here at the bottom of our file we're gonna echo film title. 1:56 Well, we wanna make sure that there actually is a film title. 2:01 so, if there isn't a film title or there's no film at all, then we wanna return 2:04 a message that say, sorry there's no film could be found with the specified ID. 2:08 The way that we can do that is to just check if the film object itself, or 2:13 the film variable. 2:17 Is is set, it actually has something in it. 2:19 We can do that with the isset function of php, so if I actually type php isset, 2:22 which is all one word, here's the manual on php.net. 2:29 And then we're looking to see if a variable is set and not null, or 2:34 basically not empty. 2:38 All right, so close that out and then we'll go back to our films, and 2:40 then we'll say if open up our parents, and then open up our curly braces. 2:44 We'll close out our curly braces, and then, what are we testing? 2:50 We're testing that is set. 2:54 Open and close parens again. 2:58 And then do $film. 3:00 Okay, so we wanna make sure that it's actually set and 3:02 it's gonna return something to us. 3:05 If it's empty, we wanna do something else. 3:07 Let's make sure that it's working before we test our actual error case. 3:10 So here we'll go back and do, number nine again, hit enter. 3:14 Okay, that's working. 3:19 It's still returning it to us, but now it's this normal text. 3:20 That's because we lost our h2 that was here before. 3:23 What we're gonna want to, the h2 for 3:27 the film title or our statement that says we can't find a film. 3:29 So I'm going to put that outside here. 3:33 Okay. And make sure we close it 3:36 out after our php tags are closed. 3:38 [BLANK_AUDIO] 3:40 All right. There's our h2. 3:44 Save it, let's refresh our page here. 3:46 Okay. Much better. 3:49 That's back to the h2 that we were expecting. 3:50 And, now, we'll do our else statement. 3:53 So, else, what do we wanna do, 3:57 we want to return some kind of a message that says, sorry it cannot be found. 3:59 So we'll do an echo. 4:03 [BLANK_AUDIO] 4:04 Add our quotes, close it out with a semicolon, and 4:08 then whatever we wanna return to our user in the h2. 4:11 So we'll say, sorry, comma, no film was found 4:15 with the provided ID. 4:22 Yeah, that's good enough for now. 4:28 All right, let's save that and refresh our page. 4:30 Okay, still works, but 4:33 if we go with a number that's outside of this, still not returning what we need. 4:35 Okay. 4:39 So film must be set so where are we gonna need to modify our code? 4:42 Let's see what film looks like here. 4:47 If we go up to line 16, clearly film is set after our results test is run. 4:49 All right, so we'll go here and let's just do a var_dump. 4:57 Some rudimentary debugging here for you. 5:04 $film, hit the semicolon, 5:06 save it and go back up and hit refresh. 5:11 Okay, all is returning to us, a boolean false. 5:15 Okay, so false is technically set. 5:18 It's a boolean, it's not considered empty. 5:22 So the isset will not work for us. 5:24 So that code really isn't what we want. 5:28 Okay, so let's switch back over to our code, 5:30 we don't need this if statement down here for this particular instance. 5:32 We'll just leave it in we're gonna need an if l statement I'm sure later. 5:38 But we're not gonna need this particular message. 5:41 So I'll just remove the else for now and leave this in place. 5:43 Then we'll go up here and 5:48 this is where were going to want to test whether or not film is what we expect. 5:50 So right here under line sixteen we'll create a new line and 5:56 we're gonna do another test or another conditional. 6:00 Now the conditional that we're testing here is that we've taken the ID. 6:02 We've passed it through. 6:07 We've, you know, requested it from the database. 6:08 It's returning to us a false because nothing was found. 6:11 We want to test to see whether or not film is false, so we can return a message. 6:15 So we'll do if, and then we'll do $film equals, 6:21 equals, capital FALSE here for our keyword. 6:26 Okay. And then if it is false, 6:30 then we wanna return a message that says the film could not be found. 6:34 Now we can do that by actually using the code that already exists here. 6:38 It's in an H2. 6:43 It's film, film title. 6:44 So we can just set our film title if we want, or 6:46 we could return a message and die. 6:49 Let's just return a message and then kill the process for now. 6:51 So we will echo and then we're gonna use what we previously put down there before. 6:55 So, sorry a film could not be 7:01 found with the provided ID. 7:07 All right. 7:13 Now, let's see if this works as we expect, so 7:14 we'll go back over to our page here, after saving. 7:16 And we'll hit refresh. 7:20 That says, sorry, a film could not be found with the provided ID.That's good, 7:21 except we wanna kill the process at the end by typing, die. 7:25 Okay, so we'll hit refresh on this, and now it says sorry, a film could not be 7:30 found with the provided ID, and then we go back here and hit number nine like we 7:35 had before, and now we're back to ALABAMA DEVIL which is ID nine. 7:39 Okay, so just as a review here, we have gone through, 7:45 we've got our binded and prepared parameters. 7:49 We execute our statement, and then we go down here and 7:52 make sure that the film is actually there, if something actually exists. 7:56 And if it doesn't, then we return a message to kill the process. 8:01 We could definitely do more there, 8:04 a little bit more user interface friendly error messages. 8:05 But for now, this is great as an example for you. 8:09 Now the workspace here that's set up for 8:13 you has the database, it has all these tables. 8:14 Just as an example here we'll do one last little thing. 8:17 Instead of it saying if it is set film, 8:20 I just want to change the code just here for a second. 8:24 And instead of echoing it out, I'll actually continue to echo it out, but 8:28 afterwards, I'm gonna do a print_r, and 8:33 pass through the actual film object, or the film array variable. 8:35 [BLANK_AUDIO] 8:40 Let's save this, and go back and hit refresh. 8:43 Okay, if you see here, we have our array, film ID, 8:47 the description, all the information about the film. 8:51 We're really, we're only needing the film ID. 8:56 So something I say that I would do to continue learning on this, 8:59 would be to take what's existing now and, and build a little something out. 9:04 Maybe run your query so it's just getting the title and maybe just the ID or 9:10 just a few other small items instead of everything about the film. 9:15 Perhaps on our main page on our index page, instead of doing everything here, 9:19 enlisting a thousand of them, maybe try to build in some pagination. 9:26 Do, you know, 10 per page or 20 per page. 9:30 Feel free to play around with it. 9:33 The workspace is yours to use and enjoy. 9:34 I hope you've enjoyed the course. 9:36 Now you have a good base understanding of how to work with a database in php 9:39 using php data objects. 9:43 Practice is very important to learning more about how we work with databases, and 9:45 what else is possible with PDO. 9:49 That said, I would suggest you take a look at the notes for 9:52 this course, and read all the documentation thoroughly. 9:54 Take some time to use work spaces, and practice with the example database, and 9:58 perhaps look at some open source php projects. 10:02 To see how they handle working with databases. 10:05 The next logical step after understanding how PDO works, is to 10:07 look into further database abstraction with ORMs, or Object Relational Mappers. 10:11 Such as Doctrine, which you can find at doctrine-project.org. 10:16 See you next time, and remember to work hard, and have a little joy. 10:22
You need to sign up for Treehouse in order to download course files.Sign up