Placeholder Image

Subtitles section Play video

  • creating these classes requires equipment and service.

  • Is that cost money?

  • If you appreciate this education, please think about going to Eli the computer guy dot com and offering a one time or monthly recurring donation.

  • Welcome back.

  • As you know, I am Eli the computer guy.

  • And in today's class, I'm going to show you how to use an HTML form in order to update records.

  • And you're my sequel table using P A.

  • P.

  • So this is a pretty nifty toe.

  • Nifty Neto class today, Essentially, what we're going to be doing is we're going to be using to p a P Scripts.

  • The first PHP script is going to dynamically arrange an HTML form for you.

  • So basically, you're going to call this PHP script.

  • You were going to say What student i d.

  • You're looking forwards or want to create a student?

  • I d variable will just plug in a number for that student I d.

  • You know, one through.

  • I think we have, like, 19 students at this point in the table that we have.

  • What will happen is the pH be script we'll go through.

  • It will find the record associated with that student i d.

  • And then what will happen is it'll write out an HTML form and then in the default spaces.

  • It will then add whatever is currently in the records.

  • So let's say if we did Ah, student I d number five student i d.

  • The number five might be student Timmy who is a boy who was six years old.

  • So basically, when the form has created, not only will you see the name and the age and the gender, but it will already be defaulted to whatever the record currently is.

  • So, Timmy boy, six years old, then what will happen is if you want to update that information like you would with an HTML form, basically, you can simply just type in something new or select something different in the option box.

  • You hit the submit when you hit the submit this now dynamically created form, we'll submit the information that you you have plugged in to an update PHP script which will then update the record that you were looking at based with the information that you have just inserted.

  • So today we're going to be using to PHP scripts.

  • One PHP script is essentially just going to be a standard update script like we've used previously.

  • The first script is going be a PHP script, but basically what's going to do is is going to dynamically build on HTML Web page for you and pre populate that form with what is already in the record.

  • So there are a couple of warning warnings today.

  • The first important warning warning today is to be careful of your Web browser cashing the form information.

  • So when I was going and I was doing this lab and I was playing around with different settings, one of the issues that I ran into is that basically the Web browser, Firefox would cash some of the fields where I had entered information.

  • And then when I hit refresh instead of pulling in the new information like it was supposed to go, it just used the cached information that it already had cashed.

  • So one thing if you're playing around with the scripts and you're getting like, weird output from the form, one of things you may want to do is instead of a refreshing the form refreshing the script actually close that tab a re open that that script PHP script that I'm going to showing you in a different tab, and then that should pull in all new information.

  • So the first thing to be doing the warning warning about today is Do be careful of your Web browser cashing a data that may give you some some weird output.

  • If if you're not, if you don't know that that may happen.

  • The other warning warning that I will give you is my code may look gnarly today.

  • Look, I'll be honest with you.

  • I'm showing you folks how all this stuff kind of works.

  • The code that I actually write can look a little messy.

  • Might not always be up to the standards of those professionals out there s o do Just keep us in mind when I'm going through the code.

  • When I am showing you things again, I am trying.

  • Thio teach you in a way that you understand what is going on with the hope that later once you do grasp that concept, you'll learn howto be able, do proper syntax and write all of it all pretty for the professionals.

  • Uh, but just keep that in mind today.

  • Something code that I'm I'm writing for you does look a little bit gnarly.

  • The reason that I'm writing it in the way that I am is because I think it is easier to understand.

  • But again, in the real world, let's just say some coders my ass and his secrets.

  • So anyways, with that, let's go over the computer and I will show you how this code works.

  • Day.

  • So here we are, at my lab environment again, I'm using to bunt to desktop 18.4 Lt s this is running within a virtual machine on virtual box.

  • And I'm using a Mac book pro.

  • In order to create the lamp stack on this demonstration machine, I use something called tasks L t A s K S E L.

  • It's a tool that allows you to install the entire lamp stack packing my sequel PHP all default configurations.

  • I have not modified PHP.

  • Donna and I have not modified V hosts or anything like that.

  • The only modification it all is I didn't put a PHP folder in the root directory of Apache again, so I had some place to dump the PHP scripts beyond that in order to actually write the scripts that I'm showing you today.

  • I am using G edit.

  • So this is the equivalent of no pat or text edit.

  • And either the Windows or the Mac world, just basically a crappy little text editor.

  • Because when I'm writing relatively small scripts, I do like showing you folks that you could just use a crappy text editor in order to do that.

  • The version that we need to do is we need to go over and take a look at our my sequel database and understand How are my secret database works before we actually start getting into the scripts today to go down to the whole show applications they're up to go terminal, they're going to enter at the command.

  • Proud.

  • Of course you do.

  • My sequel space hyphen you off whatever your user name is, Bob has always a space Siphon Peed asked for the password.

  • That sort of 123456 and we're now in my sequel from here We're going to go showed at a basis basis because we always want to make sure we understand the environment we're dealing with, especially before do modifications to our databases or tables.

  • This shows us.

  • The databases that we have in the server of the database that we care about today and that we've been using is class D.

  • B to the Duke use Class B semi colon.

  • Of course, once we get into the database, we will the new show tables.

  • So this will show us the tables in this particular database on with these tables with this database, we do have multiple tables because we've been using this for all the projects up until now, the table that we care about today is the student stable.

  • Now, I will highly recommend that you create a backup of your students table, especially when you're playing around.

  • Since we're doing an update today, right?

  • If you screw up an update in a script, you can you can really Ho's your table really quick.

  • So I would highly recommend you take the three and 1/2 seconds required in order to create a backup your students table so that if you do something stupid, you could recover relatively quickly.

  • From that we're going to do describe the E S C students semi colon.

  • Yes.

  • So we can see what this table looks like.

  • This table has four field a student i d.

  • A name and age, a tender and a uniform student.

  • I D Field is an important field.

  • It's an integer, and it's an auto increment.

  • So the student I d.

  • Is going to be important today when we were up.

  • Basically, when we're searching and we're updating records because within a my sequel database table, you need some feel that is absolutely unique for all records.

  • That name may be the same.

  • The egg is maybe the same.

  • That gender may be the same, but you need something that's absolutely unique.

  • What happens when you have to think about is what happens if you have two records where the name is Bob.

  • The ages 11 and the gender is boy right.

  • That's to quote unquote identical records, which is just gonna cause a mess of problems because the computer is gonna know which record you actually want to deal with.

  • So by having one absolutely unique a field that means that that all records will have a least one part that's absolutely unique.

  • So for here, that's a student I d.

  • So you may have Bob 11 boy Bob 11 boy, but it will be student i d.

  • One for Bob 11.

  • Boy and student I d two for Bob.

  • 11 boys at least something There will be, um get name is text Ages into your gender is text in uniform.

  • His text thing.

  • If we do select Oh, all from students, we can see what records we do have in this particular table.

  • Let me increase the size of this window a little bit and so we can get a C student.

  • I d name, age, gender and uniforms.

  • Student I d.

  • One is Bobby a 12 gender boy.

  • That person has a blazer student idea.

  • Four Freddie 14 boy, also a blazer.

  • You so wanted so forth, you know, student idea 15.

  • Her name is Sue.

  • She is 23 years old, She's a girl and she does not have a uniform.

  • So this is what the data on the table looks like.

  • This is what we're going to be interacting eso from that lets go and actually take a look at the web browser so before.

  • Oh, before we actually start doing the project, I just want to show you what the results the product project should look like.

  • So you type in 1 27 0.0 Not one.

  • That is the loop back address.

  • Basically, that is the address when you're trying to get to the Web server on the computer itself, we put in PHP because, as I said before, I have a PH.

  • D folder and then we're going to do is we're going to go to the PHP update form dot PHP script.

  • So the dot PHP So at the end here, this is not PHP.

  • So this is going to dynamically, right?

  • An a t m l A form for us.

  • So it's going to write.

  • The eight came out form and based off of the record number, we give the script.

  • It will then pre populate the fields of that HTML form with whatever the information is within the record.

  • S o do realize.

  • Yes, it's yes, it's an HTML form, but you do have to end it with dot PHP in order for the peace be script to work, right.

  • So where dynamically Right?

  • In an HTML form using pH, we're gonna hit enter.

  • And so basically this pops up.

  • So we have a student.

  • I d here.

  • So a student i d here is a five.

  • So I've actually put that in statically within the code.

  • Just make life easier.

  • This person has a uniform of a blazer.

  • Their name is Tim.

  • Their ages 80 and their gender is boy, we go down here, we could take a look.

  • This is my secret.

  • Out of a stable itself.

  • There was student idea five.

  • We have a name of Tim.

  • You have an age of 80.

  • We have a gender of boy on this has a blazer, right s.

  • So maybe maybe it's like we're looking at this and going Oh, crap.

  • Tim, Tim isn't 80.

  • Tim is.

  • Tim is eight.

  • Tim is actually supposed to be eight.

  • And if 10 is a, we shouldn't be calling him.

  • Tim could.

  • That's that's what you call a man.

  • We should be calling him Timmy.

  • Right.

  • So let's make these modifications s o.

  • We do the submit query here.

  • We just get a little Basically, this is just a report just to say that the update has occurred.

  • So records updated student idea five is now Timmy, age eight, boy, which obviously is different than what's here.

  • But if we do a refresh basically gonna select all from students and we hit inner We can see now See that student i d five is Timmy is now eight and is a boy, so that's what we're going to be doing today.

  • We're going to be dynamically creating an HTML form using PHP, pre populating that HTML form with the information that is in the records on.

  • Then we'll be able to modify them so that let's go over and actually take a look at the code Esso per day.

  • We have two scripts.

  • We have a script called PHP update form dot PHP.

  • Basically, this is going to dynamically create that html forem.

  • As I said before, and then when you hit the submit button for this particular form, they'll be dynamically created.

  • It will then send the post information over to this other script PHP update form scripted up.

  • You'd be.

  • And then this is what will actually put all of the data into the my secret database table so that let's take a look, eh?

  • So we come up here and the first thing we're going to do, of course, is going to open up the Ph be script the next thing that we're going to do is we're going to create a variable called Dollar Sign underscores student dollar dollar signs student underscore idee and we're going to set it to five.

  • So I am a hard coating.

  • The student i d n here.

  • But do you realize again when I am doing classes, there's a whole question of where do you start the class and where do you end the class?

  • And so I am hard coating this end Just so just so we can compartmentalize what I'm trying to show you today.

  • But do you realize that this variable could be set by a value that comes in from a post from another form?

  • You can have another form that has a little text box that says, What student I did you want to modify?

  • You could plug in a number there hit submit that could send the value to this PHP script.

  • This couldn't have the other side student underscore i d equal dollar sign, underscore post and actually pull pull the value that's being sent from the other form again.

  • I am hard coating this just so we have a place to start from past that over, then just got to get to the normal crappy connection stuff that we're always dealing with.

  • A server name equals local host user named Bob Password.

  • What do you have?

  • Six Database equals class D.

  • B with a new connection.

  • Knew my sequelae.

  • Server name, user name and password and DV same as always.

  • Passed that again.

  • We've still got that.

  • If if the connection basically there's an error.

  • So if there is an error, kill the connection printout connection failed.

  • Can Captain eight with the period can catch innate on with whatever the connection.

  • Error is someone so forth.

  • So we've already gone over that about 15 times.

  • At this point, we'll worry about that too much if you don't know what's going on there you go with previous classes past that.

  • This is where it gets to be interesting.

  • This is where it gets a start.

  • Doing cool stuff, eh?

  • So now he would come to the sequel statement, So dollar sign SQL equals.

  • So we're gonna create a very welcome to life science seek SQL.

  • And that is going to equal this sequel statement that we want to pass through the database.

  • So we're gonna say select all from the students table.

  • Where student underscore idea.

  • So again, we're talking about the column here.

  • So where this column equals and then you do a single quotation mark and then you pass the variable dollar signs.

  • Do tow, underscore idea.

  • So whatever the value of this variable is, that's what gets plugged in here.

  • We have hard coded that to five.

  • So this will be five for this particular project.

  • Close our end that with a single quotation mark for the variable and then the hole in the hole sequel statement with the double quotation marks.

  • And then, of course, you semi colon because this is P H.

  • P past that.

  • We're then going to create a variable called Result, and the result is going to equal basically, the connection and the sequel statements were going to say, is connection.

  • We're going to send a query.

  • That query is going to be the sequel statement that we created up here.

  • And whatever the answer to that is, that is going to be what the value of dollar sign result is.

  • If dollar sign result, the number of rose is greater than zero.

  • Then we're going to continue on.

  • So basically, if if when we do this query we actually get a result greater than zero, then we're gonna dynamically create the Web page.

  • If not that, it's just gonna fail out down here is just simply going to say echo and not found.

  • Then we're gonna come up.

  • The next thing that we're going to do is we're going to create in a rave dollar sign Rose at a dollar sign Row is gonna be an array, and a rave is a variable that stores of multiple values within it.

  • So So we're going to use what's holding named indexed Array to basically what that means is there's basically there's different slots.

  • And if they're within those different slots, there are different values.

  • Those slots are gonna be based off of the columns.

  • So dollar sign, right?

  • I was going to equal basically the dollar sign result up here, and that's going to affect association.

  • So basically what this does here is this creates an array from the results that we got from the sequel statement, and then that array is going to be dollar sign row.

  • Once we have that array, we can then start pulling out the individual values within that array and then setting that two variables.

  • So the variables that we're going to care about is dollar sign, name, dollar sign, a dollar sign, gender and dollar sign uniform.

  • How we're gonna pull that out is then we're going to do dollar sign row with the name, so basically, it's going to pull out the name value from dollar sign around.

  • Then it's gonna pull out the age value from a dollar sign row that's gonna pull out the gender value, and then it's going to pull out the uniform of value.

  • So now we're going to have these variables.

  • So these variables we can now call and the values have been set based off of the values in the array.

  • Now, we're gonna go out here, and this is probably gonna get a little ugly.

  • I'm sure there's a lot of coders out there that might scream with this, but oh, well, I don't have to make them happy.

  • I just have to make you happy.

  • So what we're basically doing here is with this echo.

  • With this echo, we're printing out dynamically a full HTML form.

  • So when we take a look and this HTML form here, this is now what is being done It dynamically being written out by this echo.

  • So we have the echo and the echo goes all the way down to this semi colon here between this semi colon and the echo.

  • That's what we're printing now.

  • So we open with a double quotation mark and we close with a double quotation marks in the side.

  • The echo.

  • We use single quotation marks.

  • Remember, if you use a double quotation mark within the echo that will end the echo and then you'll run into a nasty problems.

  • So basically, if you have to enclose something is you enclose it with double quotation marks and then internally, if you have to use quotation marks, you single quotation marks.

  • So then you come here, and basically it looks like a normal 80 you know, for I guess, with some PHP variables in here, eh?

  • So we open up with HTML tags like we did with the normal HTML form way.

  • Then open up the body.

  • From there, we open up the forum tag.

  • We do.

  • Action equals single quotation mark.

  • And then basically, this is where we put the script name where we're passing the valleys where the variables says this way.

  • Put this this script in there.

  • So where that's called, then we use method equals post again.

  • All this is single quotation marks.

  • From there, we're going to simply print out in texts were going to say print out and text, and then we're going to print out the value student I d.

  • And then we're going to have a break.

  • They were going to have an input type of hidden.

  • We're gonna have an input type of hit.

  • So basically, what I need to dio is I need to pass the value for student i d.

  • Without letting anybody mess with the student i d type of thing s.

  • So this is how I'm able to pass that value.

  • So I've been input type of hidden.

  • So this is actually set the value that will be sent, but people can't actually see it.

  • We call this student I d.

  • So that later we can actually point to it on dhe.

  • Then we set the value of student I d to the $2 sighing student I d.

  • So whatever the value of that very bliss then here.

  • I'm just printing out the uniform value just to show that you can see print out text uniform, and then whatever value is, and then we break.

  • Now down here.

  • This is the same thing that we had in the form before for, like, creating records for the database table.

  • The difference here is we can actually put in a value to basically put a default value in.

  • So the value of a dollar sign name.

  • Right.

  • So we do name and then input type, text, name equals name.

  • So this is how we'll be able Thio Orexigen eyes it later.

  • And then we put the value of that $2 sign name.

  • So whatever the value of this variable is not got set up here that will actually print out as the default value age.

  • The same thing is text.

  • We're gonna call it a day and the value will be dollar sign eight.

  • So whatever is in that particular record, then we go down to gender.

  • Gender is an option box, so it gets a little bit different.

  • So select name equals gender, as we had before.

  • Now, with here, we actually have three option values What I've done is the first option value.

  • I'm actually setting the name as dollar sign gender.

  • So whatever that is, whatever got past here and then I'm using selected right?

  • So basically the internal name for it is going to whatever name came from the table and then by saying, selected, basically, this means that's the default.

  • So that's gotta pull out.

  • That's gonna be the default.

  • And in here, I'm gonna print out whatever it is.

  • It's so dollar sign, gender, whatever that value is then below that, we have option about value option value equals boy like we had before, then prints out, boy, an option value equals girl like we have before prints out girl.

  • Then we do select than we do break.

  • So this closes this whole option box here, then we break, then input type equal submit.

  • So basically, it's just creates the submit button again single quotation marks around it.

  • Then we close the form, don't close the body, don't close the HTML.

  • Then with the double quotation marks, we close this entire echo that we have.

  • And with a semi colon, we end the echo when we come down here.

  • This is the l statement for if no records were found, we break everything out and then we come down here and we close the connection to the database, and then we close the Ph.

  • P tag.

  • So once all of this information has been taken, you hit the submit button that will then get passed to the pH be update form script dot Pete, a p on the script is relatively simple.

  • So we're right here we have We're opening up the pH be script like we normally d'oh.

  • And then we're going to create a number of different variables and set the values based off of that post information.

  • So we have the dollar signs.

  • Student underscore i d dollar sign.

  • Name Don sign a dollar sign.

  • Gender.

  • We're going to set the values based off of what is posted, What is sent from the form.

  • Uh, student, I d name, age and gender.

  • So these names here, these names hear those names correspond with this name here.

  • So whatever you've named these text boxes or these option boxes, this is the name that you have to reference here in order to set the values for these variables and again you also have this hidden.

  • So you actually haven't hidden data Type on this is This is also called student I d here and so that gets passed.

  • Alright then we come down here again all the same connections that we've seen before.

  • Server name using a password connection.

  • If there's a connection, error fail out.

  • But down here is where we get to the new sequel statement.

  • So this is the actual update sequel statement.

  • So we do dollar sign sequel to create the sequel of At Variable Equals.

  • And then here what you do is you do update So update is the command and sequel to update a record update students and then you say set name equals and then single quotation mark dollar sign names and one of the value that you put in that a camel boxes It will now be that comma eight equals whatever the value is in the H e mail box that will now be the age comma Gender equals begin single quotation marks, then dollar sign gender Whenever that value is where student i d equals on dollar signs student i d.

  • So that's why that's why you have to pass this student pie devalue.

  • And that's why I have it as a hidden hidden box Here is basically there's I have to be able with this PHP script.

  • I have to pass that PHP script knows what What record that it's supposed to update.

  • So that's there.

  • Uh, get close Liquidation bar closed with the semicolon from there, all we dio is if connection query dollar signs equal, equal, equal equals True.

  • So basically, if this works, then all I need to print out is I just need some visual cue that it worked and that it did what it was supposed to D'oh s.

  • So for me, I just did records updated cabinet with student I d can catch me with a hyphen can catch me with the name began with a hyphen again within a day can be without a hyphen And get me with the gender So basically, that's where when you get that really ugly ass it says records update its student i d name a gender.

  • That's where I just push it out again.

  • And that shows me, especially in the development phase, that the variables are passing the way that they should pass and I'm not getting some weird, screwed up thing.

  • And there again to misspell something like that again you get the else else is if for some reason the query didn't work right, it'll just say error sequel basically give you the error, and then it will connection clothes.

  • And so that is where you get this.

  • So again, if we pull up my sequel that we take a look at this Oh, we can see again.

  • We have Timmy there, so maybe want to carry Timmy's named Pam.

  • Pam is gonna be 18 and Pam is going to be a girl because everything is fluid now.

  • So again, student i d five student i d five hits submit query.

  • We then go here.

  • We do select all from students.

  • We now see record five is pan 18 is a girl, one of things that you want to show you again.

  • The warning warning eyes.

  • You can run into some problems if you modify the student I d on.

  • All you do is refresh on the Web browser s.

  • So let's just Marfa change this to 10.

  • Story of student idea of 10.

  • I'm going to click save, then we're going to go the browser.

  • I'm simply going to go back on if I hit.

  • Refresh.

  • We now see that student I D says 10.

  • But we still see Pam.

  • We still see 18.

  • We still see girl, right?

  • That's obviously not correct.

  • It should be.

  • 10 t tennis Should be Timmy 33 boy, No.

  • So that's why, with this many times when you have to do is you just have to open up 17001 PHP for its lashing.

  • Basically, pull up the form again, and now you can see it actually pulls up.

  • Student i d 10 No uniform named Timmy 33 boy.

  • So this this is the warning warning, especially if you're new to coding.

  • You might run into a problem because if you don't realize that your Web browser is cashing some of this information, that's where you can sit here.

  • Like what?

  • I don't know that because a student i d.

  • K writes you look at it you like, but But it's obviously pulling information because the student I d.

  • Came and you're not realizing that for whatever reason, it did cash those particular text boxes.

  • And again, that's one thing to be thinking about in the real world when you're developing an actual product is to figure out ways to make sure that kind of thing doesn't cash, and there are ways to do it.

  • But again, that goes into the hole.

  • Where do you begin and where do you end these stupid classes?

  • And so we'll get into that kind of thing later.

  • But this is a basic way that you can create they form that will be dynamically be written.

  • The default values will be, um, you know, whatever is currently in the record, and then you can go on to go in and modify and edit, and then you simply hit hits a bit query and then that will edit it for you.

  • So there you go.

  • Now you know how to update your records within your my sequel database tables using a dynamically created HTML form.

  • Yeah, s.

  • So now, Now you're actually learning how to do quite a few things using a basic PHP html and you're my sequel database you're now able to create records are now able to search.

  • The records were now able to list records, and now you're able to update records, which again are the core components of when you think about it almost is single a map that you use again?

  • One of the funny things in the modern world is people have this idea that, oh, all this new, fancy cool stuff out there.

  • At the end of the day, you realize a lot of the application to use, especially a lot of the Web applications air basically their tables, their tables with some kind of input form, with some kind of output reporting on, and really, that's about it.

  • What makes them special is again all the back and stuff, adding functionality, creating some submit any cool code and that kind of thing.

  • That's what makes them special.

  • But the core component of what they are is their tables there, reports their forms.

  • That's about it.

  • So now, now you're really starting to understand how to use this thing again.

  • What I show you today is very ugly.

  • Oh my God, it's I would not put that into a production environment, but I think it's relatively easy for you folks to understand what you're looking at again.

  • To be clear, it is horribly insecure.

  • I would have I said I would not put this on.

  • A production environment is horrible and secure.

  • Using what I'm showing you to Dio would just get massacred if you put this on the Internet but is give you an idea of how this stuff works s so that you could that in the future started actually locking everything down and making making something that is valuable for you.

  • I also want you to understand understanding where again, when I start talking about you're gonna be using multiple programming languages or decree any app that that you really do have to use multiple programming languages again, like we're using my sequel.

  • Obviously we're using sequel.

  • Obviously we're using PHP.

  • But even things like understanding how HTML works so that you can dynamically right an html for so again, like doing like the little things of understanding with the form, how to put in those default values, right?

  • Because someone, because I mean, think about what a mess it would be if you could update records, but you couldn't see what's currently in the record, right?

  • You just had text boxes, just type stuff in and submitted it like that would be a best have having the default entry in those text boxes be pulled from the table that actually make something useful.

  • And so that's something where you have to understand how HTML works in order to make that happen again.

  • Once you start doing more complicated things, when you start dealing with the whole cashing issue again things like CSS and things like Java script those are things that really refined the whole experience for the end user and again to to make all of that work.

  • You really do have to understand those different coding languages.

  • So I really want you to just grasp the concept again.

  • You're gonna be going out there and creating any kind of Web app at the minimum, the minimum you're looking at, like five languages, plus a few other technologies such as Apache and the Lennox and that type of thing to make the thing work.

  • So say, there you go.

  • You know, now, know how do update your your records using a dynamically created HTML form with PHP.

  • As always, I enjoy doing this video and look forward to seeing the next one.

  • Apparently the type of content you just saw is not what Susan W.

  • Wants for the future of YouTube.

  • This means that recommendations by YouTube to this channel have dropped massively, and views are becoming a comically small I hate to ask.

  • I used to say I would never ask, but if you could subscribe like common and most importantly, share the videos that you appreciate, that may help slow the death of this channel.

  • Do you remember that?

  • If anything at all happens to this channel, you can go to Eli, the computer guy dot com, to view the content and access information not available on YouTube.

creating these classes requires equipment and service.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it