Download presentation
Presentation is loading. Please wait.
1
Web Design II: Teach Yourself PHP & MySQL
Marquette OPUS College of Engineering
2
Welcome! Instructor: Karen Mayes
Lead Instructor for Marquette’s Engineering Outreach programs. Scientist, Teacher in the “19th Grade.” Lifelong learner STILL not a web designer! Assistant Instructor: Mr. Jacob Class schedule: 9 am to 2 pm.
3
Other Web Servers and Other PCs
Refresher – Internet 101 How does the internet work? Web Provider A Web Server The internet is a bunch of computers linked in some magical way. We primarily experience the internet through web browsers. Web browsers on our PCs/Phone/Tablet are primarily “outlets” for information on the internet. They (mostly) receive information. Web servers are computers are information “suppliers.” They store and share information. Other Web Servers and Other PCs Your PC/Phone/Tablet
4
A little about web servers
Web servers are computers that run software which allows them to communicate with remote web browsers via the internet Apache: The backbone! Allows internet access to files on the server PHP: A server-side scripting language (More in a moment!) MySQL: A database program (More in a moment!) Many other options – Mail Servers, FTP, Wordpress, Joomla, etc. If you rent a web server, most of this happens “behind the scenes.”
5
How it all works… Data flows through ALL these paths!
6
What is a scripting language?
PHP is a scripting language Most computer programs are written with programming languages – they must be “compiled” (turned into a program) in order to work. Scripting languages do not need to be compiled. The raw code works without any additional steps. Most web applications use scripts.
7
What is PHP? PHP runs on your web server, not on the local PC.
It allows web pages to send information to the server for storage. Information sent to the server can be manipulated (math operations, for example) You can use PHP to decide how to process information. Since it is stored on the server, PHP code is not available on the local PC It is more secure than other web scripts
8
What is MySQL? MySQL is an open-license database program.
Databases use tables to store vast amounts of information. You can run “queries” which can pull custom selections of data for you to work with MySQL is a program that runs on the server. It isn’t a scripting language It must be installed on the server. Pretty much all web hosts provide MySQL
9
PHP and MySQL together: Powerful web pages
MySQL stores information PHP can send and retrieve that information PHP can run queries to receive specific info PHP can make decisions about information it receives PHP can be inserted into HTML documents HTML pages can be given custom visual styles using CSS
10
What do you need to build web pages that use PHP & MySQL?
A computer (duh.) A web server with MySQL and PHP installed on it Web design “software” This can actually be done with a text editor (like notepad!) Free: Notepad ++ Commercial: Adobe Dreamweaver Student discounts available
11
Reminder: Teaching Yourself!
Learn by example! Look at something that someone else did correctly, then Copy it, customizing it for your own use The hardest part… HAVE PATIENCE Few things work right the first time!
12
PHP Help for Beginners http://www.w3schools.com
And, when all else fails…
13
Advanced Web Development
WAMP Creates a “virtual” web server on your computer Doesn’t actually host web pages Includes Apache, PHP, and MySQL Allows you to test your complete website before you “go live.” XAMPP Similar to WAMP, but includes a mail server and FTP (plus a few other things)
14
What we’ll do today: Think about planning websites and scripts
Learn about PHP syntax Practice some basic PHP scripts Learn how to set up MySQL database tables Access a MySQL database using PHP Learn about HTML forms Create a form that sends and receives information from a MySQL database
15
Planning: It’s not optional!
When you are designing a website, start by thinking about what you want to accomplish. What basic structure will your site have? HTML What do you want it to look like? CSS What information will you need to access on your server? MySQL What will you do with your information? PHP What input do you need from your users? HTML Forms What interactive features do you want on your web pages? Javascript
16
Example: My D&D Character Generator
Yes. I am a nerd. I want my website to guide users through making a dungeons & dragons character. I’m okay with a simple style/design. I’ll need the D&D character options in my database. I’ll need to retrieve data based on the selected character traits. I need to ensure that the user can’t proceed if they forget to select important features My web pages will use text fields, dropdown menus, and buttons There will be places where my website calculates data interactively as information is typed (using the local PC)
17
PHP – not on your PC! The PHP scripting language must be installed on a computer for it to run. PHP is not installed on your PC! You can test parts of your code online To test all of your live code, you will need to upload it to the Web Server using FTP You will then see the results of your code through your browser
18
Get Ready… Open “My Documents” Right-click, Create New, Folder
Name your folder as follows: First initial, middle initial, last name Ex: kmmayes This will be your web page folder.
19
Using Notepad ++ to write PHP code
Your PHP code will be embedded in your HTML Document Select “HTML” as your Notepad ++ language Because lines of code can become lengthy, you might want to select Word Wrap from the View menu Note: This can get confusing when using tabs. Feel free to turn this option on or off as needed,
20
Getting Started with PHP
Open a new document in Notepad ++ Note: If you’re using this at home, you’ll need to download the free “Snippets” plugin found here: Make sure you read the readme file for installation instructions. From the “Snippets” dropdown menu, select “Templates” Double-click on “HTML”
21
Optional: Clean up the snippet
There is a lot of stuff in the <head> section of the Notepad ++ HTML template Go ahead and delete everything in the <head> except for the <title>
22
Adding PHP to your HTML Document
Position your cursor in between the body HTML tags In the Snippets dropdown menu, select “HTML Tags” Double-click on the “Script – PHP” snippet You’ll see the following: <?PHP ?> Your cursor will appear here. This is where you’ll enter your PHP code.
23
White space and scripting
PHP scripts ignore whitespace. It’s very useful to use line breaks and tabs to see the flow of your program. A useful “getting started” tip: “Break open” the PHP block inside your HTML page. <Body> <?PHP echo “blah”; if (blah){blah;} else {blah;}; $blah=“blah”; ?> </Body> Your code will be easy to see when it is separated from the rest of your document
24
Basic PHP syntax and conventions
PHP commands always end with a semicolon ; PHP makes use of parentheses ( ) and curly brackets { } It is important to make sure you close all parentheses and curly brackets This can get confusing, so make use of tabs! PHP variables are case-sensitive Variables, by convention, are named using camelCase First letter is lower case, then other words in the name begin with an uppercase letter.
25
Your first PHP script! Let’s write a script that makes something appear on your screen! The echo command is one way to print messages on the screen. In between your <?PHP ?> tags, enter something like the following: echo “Hi! My name is Karen”; When run, this should look like: Hi! My name is Karen!
26
Check your code online http://writecodeonline.com/php/
Highlight and copy the PHP code from Notepad ++ Paste into the test box Run the code!
27
Saving as a .php file To check your code on the web server, you must first save it. To save as a php document in Notepad ++, select “Save As” Then, from the “Save as Type” dropdown menu, choose “PHP Hypertext Preprocessor file” Make sure your name is in the filename. Your files will all end up in one online folder
28
Connecting to the server
NOTE: The server you’re using today is a “virtual server.” It doesn’t serve files to the internet, just to this room. Open Filezilla In the QuickConnect bar: Host: Username: StudentFTP Password: Outreach! Hit Quickconnect button
29
Uploading your file In the left pane, navigate to your web folder: My Documents/YourName In the right pane, open the Student folder Drag your php file from the left pane to the right one.
30
Ready?! Let’s look at it! This web server is not case-sensitive
This web server is not case-sensitive It runs on a Windows server. Windows doesn’t notice upper/lowercase Most web servers ARE case-sensitive! Most web servers run Linux Linux IS case-sensitive PHP and MySQL are case-sensitive! Pay attention to case, even though our practice server doesn’t care.
31
Scripting Basics Scripts can follow specific directions on how to perform tasks Among other things, data can be… Received Stored Compared Manipulated Displayed
32
Variables Variables are essentially information containers
When you define a variable, you are giving the computer information and telling it how to store/retrieve it. $myName “Karen Mayes” I can put data into a variable “Karen Mayes” I can pull data from that variable later on
33
Types of variables String – Non-numeric data (words, numbers that won’t be used for math.) Always defined within quotation marks. Integer – A whole number Float (floating point numbers - also called double) – A number with a decimal point Boolean – True or False NULL – means “nothing.” Not zero, just empty. Array – Stores an organized series of information. This type of variable is beyond what we’ll cover today.
34
$variable=information; $variable = information as integer;
Defining a variable PHP makes it pretty easy. $variable=information; PHP will make a decision about what kind of data is being stored. $myName=“Karen” will be treated as a string $myGrade=19 will be treated as an integer $myTemperature=98.6 will be treated as a float If you want to be specific, you can add an “as” after it. $variable = information as integer; Remember… PHP variables are case-sensitive!
35
The echo command and variables
You can echo a variable right in the middle of your text. The variable data will be printed, not the variable name. For example: $name=“Bob”; echo “Hi $name!”; Will appear as Hi Bob!
36
How to “concatenate” This is a fancy way of saying “put one thing after the next” To concatenate, you use (the very complex) . You can see how it works using the echo function. echo "Hi " . " " . "Bob!"; There are spaces before and after the “.” Hi <space> Bob!
37
Special characters? So… what if I want to echo an ACTUAL dollar sign?
Backslash! \ Also works with other special characters that PHP uses. PHP will echo whatever character comes after the \ echo "I'd really like \$10k!";
38
A blank line? To add a line break… echo "<br>";
PHP writes <br> The browser sees <br> and makes a line break! For example: echo "Good morning!"; echo "I'd really like \$10k!"; Gives us Good morning! I’d really like $10k!
39
Your turn! Right above your echo command, define two variables:
Your name The last grade of school you completed. Don’t forget to put your name in quotes.
40
Use data to make decisions
The if statement: if(condition){do this;} Usually, it’s easiest to break it up with white space. <?php code code blah blah if(condition){ do this; } ?> Makes it easy to see where the “if” statement starts and ends
41
Comparisons PHP can look at two variables and compare them, deciding if a statement is true or false. Name Example Definition Equal $a == $b True if values are the same Identical $a === $b True if values and variable type are the same Not equal $a != $b True if values are not the same $a <> $b Not identical $a !== $b True if the values and variable type are not the same Less than $a < $b True if a is strictly less than b Greater than $a > $b True if a is strictly greater than b Less than or equal to $a <= $b True if a is less than or equal to b Greater than or equal to $a >= $b True if a is greater than or equal to b
42
Math PHP can perform math operations. Here are a few… Operation
Example Answer Add 10 + 1 11 as an integer 11.1 as a float Subtract 10-1 9 as an integer 10-0.1 0.9 as a float Multiply 10*10 100 as an integer 10*0.5 5 as a float Divide 10/2 5 as an integer 10/0.5 20 as a float Square root sqrt(100) 10 as a float
43
Understanding how PHP makes its decisions
The var_dump(); command is very useful. It provides information on exactly what is happening “behind the scenes” For example… Are the following true or false? 10 == 10 10 === 10 10 === 010 10 === 10 *1 10 === sqrt(100) 10 === 100 * 0.1 Use the var_dump (); function to see... var_dump( ); True True True True False False
44
Why? Use var_dump(); var_dump(10); var_dump(010); var_dump(10*1);
10 as an integer var_dump(010); var_dump(10*1); var_dump(sqrt(10)); 10 as a float var_dump(100 *0.1); These are integers These are floats Variables are not identical to floats!
45
Your turn! Let’s use our variables to make a decision.
If we have completed high school, our code will congratulate us. $myName="Karen" $myGrade=19 if($myGrade>12){ echo "Congratulations on completing high school!"; } echo "Goodbye!"
46
But… what if NOT? The if...else statement gives us the ability to offer an alternative. Let’s congratulate everyone. if($myGrade>12){ echo "Congratulations on completing high school!"; } else {echo "Congratulations on completing grade $myGrade!"; } echo "Goodbye!";
47
More options! The if...elseif....else statement allows us to check a number of things. First it checks “if.” If “if” is true, it completes the “if” task and is done. If not, it checks the “elseif.” If “elseif” is true, it completes the “elseif” task and is done. If not, it completes the “else” and is done.
48
If…elseif…else syntax
if (condition#1) { do thing #1; } elseif (condition#2) { do thing #2; } else { do thing #3; }
49
Example: We’ll check to see if we’ve graduated high school and offer congratulations. We’ll check to see if we’ve completed at least grade 9 and offer congratulations. Otherwise, we’ll encourage future high school students.
50
Try it! if( $myGrade>12){
Am I past grade 12?? if( $myGrade>12){ echo "Congratulations on completing high school!"; } elseif ($myGrade>=9){ echo "Congratulations on completing grade $myGrade!"; } else { echo "Good luck when you start high school!"; } echo "Goodbye!"; Try changing $myGrade to see if your choices work! Am I at least grade 9? You aren’t past either grade
51
Switch Statements An alternative to if…elseif…else… statements.
Example: switch ($a) { case 0: echo " The value is 0 "; break; case 1: echo " The value is 1 "; case 2: echo 'The value is 2'; default: echo "The value isn't 0, 1 or 2"; } Looks at $a Makes a decision.
52
Try it! Let’s use a switch statement to wish upcoming seniors good luck. switch ($myGrade) { case 11: echo "Good luck during your senior year!"; break; default: echo "Make sure you are nice to high school seniors!"; } echo "Goodbye!";
53
Falling through The code will run until it hits “break” or “default.”
You can leave a case blank to pass it by. switch ($myGrade) { case 0: echo "You haven't started school yet."; break; case 1: case 2: case 3: case 4: case 5: echo " You are in elementary school." default: echo "You are at least in middle school."; } Grades 1-5 will all have the same message.
54
Using if…elseif…else vs. switch statement?
switch ($myGrade) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: echo "Good luck when you start high school!"; break; case 9: case 10: case 11: echo "Congratulations on completing grade $myGrade!"; default: echo "Congratulations on completing high school!"; }
55
Counters and while statements
while statements continue to do something as long as something else is true It uses the same basic syntax as if statements $variable++ adds 1 to the value of $variable
56
A sample counter $counter = 0; while($counter<5){ echo $counter;
} This should display: 0, 1, 2, 3, 4,
57
</part one of class> Tee-hee!
Take a break! <br> H <sub>2</sub>O <div> <div/> <div> <div/>
58
MySQL MySQL is a database program that stores information
Databases contain tables Tables contain coordinated data Name Eyes Hair This database contains information about my family. Each table contains different sets of information Recipe Made by Directions Pet Name Breed Owner
59
Accessing MySQL MySQL is the software that stores information, but it doesn’t have its own user interface (beyond a command prompt.) Therefore, setting up a table or database generally involves using a program called phpMyAdmin. Many web hosts will set up individual databases for you, but you will use phpMyAdmin to set up your tables. phpMyAdmin also allows you to easily view the contents of your table.
60
Open phpMyAdmin Here at Marquette, there is no login or password to access your MySQL database.(because this isn’t a real web server!) Go to You will be using the “student_tables” database WARNING!! Do NOT use any of the other databases!
61
Our simple database project
We will each create our own table. The table will contain the following information: Index # Family member name Eye color Hair color It will work like any other table you’ve seen. index name eyeColor hairColor 1 Karen Brown 2 Alicia Blonde 3 Evan Blue
62
Create a table Click on the student_tables link.
“Create Table” with your first and last name together, no spaces. Your table will have 4 columns.
63
The index column Database tables should have a column known as the “primary key” The primary key is a unique value specific to each row in the table An index column is a good way to create a primary key MySQL can automatically assign a number into the index field Since it is auto-generated, it will never repeat and will therefore be unique
64
Creating your columns Most of the column data can be left blank and MySQL will assign default data to it. The index field: Type is INT (integer, or whole number) Index is “PRIMARY” because it’s our unique key Check the box next to A_I – means “Auto Increment.” This makes MySQL assign a value. The name, eyeColor, and hairColor columns: Type is TEXT
65
Creating your columns Set this column as the primary key
Auto-increment
66
Entering Data Click the + sign on your database Click on your table
Don’t enter anything here! It’s automatically assigned Click the + sign on your database Click on your table Select the “insert” tab Enter data. For our simple table, we’ll only worry about the big, empty boxes. Enter the name of a family member Enter their eye color. Enter their hair color.
67
Look at the query! Every interaction you have with MySQL information must be in the form of a Query. A query is a specific set of directions pertaining to the data. When you add data to your table, phpMyAdmin writes a query and executes it.
68
A note on queries… We will only use very basic queries today.
INSERT INTO Adds information to a table SELECT FROM Looks for information in a table MySQL queries could take a whole other class to teach! If you aren’t sure…
69
Browse the table Once you have entered data, go ahead and see what’s there! Click on the Browse tab Look! A query! Your data
70
Other easy ways to get information into tables
Import from Excel or OpenOffice Save your spreadsheet as a csv file.
71
Notes about Excel csv files…
Don’t worry about the errors and alerts.
72
Import into MySQL through phpMyAdmin
Select the database from the side menu. Select the “import” tab. Browse for the file. phpMyAdmin should automatically recognize the csv format.
73
But we didn’t learn all that PHP for nothing!
Let’s clear the data from our tables and use PHP to enter it instead. To clear your table Select the Operations tab On the far left, select “Empty the table (TRUNCATE)”
74
Use PHP to connect to your database.
In Notepad ++, clear the code found between your PHP tags. To open a connection to our database, let’s first define some variables about our database. First, add a comment explaining yourself. // Define Connection Variables Then, define your variables. $servername = "localhost"; $username= "StudentFTP"; $password= "Outreach!";
75
The connection command
First, add a comment explaining yourself // Create Connection Then, create a variable with the command instructions. Since we already defined the specific server info, this is pretty straightforward! $conn = new mysqli($servername, $username, $password);
76
PHP can understand some MySQL responses and errors.
The -> is the PHP “object operator”, which means it runs a command and checks to see what is returned. So… $conn->connect_error Runs the MySQL command found in our $conn variable and then Checks to see if MySQL replied with “connect_error” If it does, PHP judges that statement TRUE.
77
Check the connection First, add a comment explaining yourself You should be ready for this by now! // Create Connection Then, use an if statement to see if it worked. We’ll also use the (cheerful) die command, which stops the script. if ($conn->connect_error) { die("Connection failed:" . $conn->connect_error); } echo "Connected successfully";
78
Yours should look like…
79
Save & Upload Save your Notepas ++ document (kmayes.php)
Open Filezilla Drag the local copy to the host. Then… See if it worked!
80
Use PHP to run a query Remember when we added data to our table using phpMyAdmin? It ran a query for us. Let’s use PHP to do this instead. You can check what’s going on with phpMyAdmin.
81
Use a variable First… (comment, remember?)
// Entering data into our table Then, create a variable with the EXACT query that phpMyAdmin ran. Watch syntax! NOTE: ' is not the same as ` Single quote Backtick
82
If you aren’t sure… copy a working model!
To make sure you define the query variable with the correct syntax… Go to phpMyAdmin. Use the Insert tab to add data to your table. phpMyAdmin will display the query. Highlight and copy it!
83
The Query Variable $addrow=“INSERT INTO `student_tables`.`karenmayes` (`index`, `name`, `eyeColor`, `hairColor`) VALUES (NULL, 'Karen', 'Brown', 'Brown')”; Notice that the first value entered is “NULL.” That’s because we want MySQL to auto-assign that variable, so we leave it blank!
84
Execute the MySQL query
Use the same kind of if statement we used when we opened the connection. if ($conn->query($addrow) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } This: Runs the query and checks to see if it gets a “TRUE” response. Reports what happened one way or the other.
85
But…Refresh? Go ahead and refresh your page several times.
Open phpMyAdmin Browse your table What happens every time you refresh? Every time you run the query, it adds a row! The rows will be identical except for the index key. Use phpMyAdmin to empty your table.
86
Enter the data using a form
HTML has a series of tags that allow you to make web pages with form entries. Important form tags: <form> </form> <input> </input> Attributes: (there are more) “text” or “textarea” “radio” “submit” “hidden” <select> </select>
87
Back to HTML! To structure our webpage and add form fields, we’ll use HTML for a while instead of PHP. Remember to write HTML code OUTSIDE the <?php ?> tags!
88
Our plan: Create one web page to enter information
Create a second web page to add that info to our table Create a third web page that either Redirects us to the data entry page or Displays our family data
89
Create a basic form Start with a basic <form> </form> tag set. The <form> tag needs to include three pieces of information What’s my ID? How am I passing form information? Where am I passing the information off to? <form id="enter" method="post“ action=“kmayes2.php">
90
Inside the form tags Create three text input fields: one for each column in your table. Text input fields are “self-closing.” Use <input /> instead of <input> </input> Name:<input type="text" name= "name"/> <br> Eyes:<input type="text" name= "eyeColor"/><br> Hair:<input type="text" name= "hairColor"/><br> You can add more attributes if you want to define things like the size of the box
91
Take a look… Comment out the php (so we don’t keep adding data to our table) Put /* just after the <?php Put */ just before the ?> Or just use Notepad ++. Highlight everything inside the php tags and then right-click/“Block Comment” The form doesn’t DO anything yet, but now you can save, upload, and look at it.
92
Wrap-up the HTML HTML can’t do much more.
Create an <input type=“submit"> button. <input type=“submit"> Click here!</input> The HTML form will pass information to the kmayes2.php page. The kmayes2.php page doesn’t exist yet! HTML will therefore… get confused
93
Create kmayes2.php to add data to our table.
In Notepad ++ : File/New Save as “kmayes2.php” only, use your name! Copy and paste the entire kmayes.php into kmayes2.php Delete the block comment markers Delete the form information We now have our framework for the kmayes2.php page
94
Retrieve the data that HTML was sending
To turn posted data into PHP variables: $variable = $_POST[‘input name']; So, we need to do this 3 times. $name= $_POST['name']; $eyeColor = $_POST['eyeColor']; $hairColor = $_POST['hairColor']; We now have captured the form information into PHP variables.
95
Use a query to add the data to our table
We already have the framework to write our query. Just substitute $name, $eyeColor, and $hairColor into the query we built! $addrow=“INSERT INTO `student_tables`.`karenmayes` (`index`, `name`, `eyeColor`, `hairColor`) VALUES (NULL, '$name', '$eyecolor', '$haircolor')”;
96
Check it out! Save and upload Go to your kmayes.php page Enter data
Open phpMyAdmin and browse your table!
97
Add a Yes/No radio button
Let’s ask if we want to add another family member. Open a new <form> Don’t forget to give the form an ID Post to kmayes3.php Use the <input type= "radio“/> tag Enter an input for every radio button option. Name all radio buttons the same thing. Select one to be checked by default.
98
The form code: <form id="enteranother" method="post" action="kmayes3.php"> Add another person?<br> <input type="radio" name="yesno" value="yes" checked/>Yes <br> <input type="radio" name="yesno" value="no"/>No <input type="submit" value="Click here!"/> </form>
99
Redirect or Retrieve the data?
Create a new document in Notepad ++ Use the Template/HTML snippet to create a new document Delete the extraneous info This time, we’ll be putting some <?php ?> in the <head> instead of the <body>
100
Intercept the Yes/No data and decide whether to redirect
Put the form data into a variable $yesno= $_POST['yesno']; Then, use an if statement! The header() command carries out the redirect if ($yesno === "yes"){ header('Location: web/student/kmayes.php'); exit; }
101
If you didn’t redirect…
Put the remaining <?php ?>code into the <body> Copy the section of the prior page that opened a MySQL connection into your document & paste it into this one Copy the section of the prior page that ran your query & paste it into this one
102
Modify the query to SELECT
INSERT INTO added data SELECT FROM retrieves data * means “everything it finds” Your new query should start by reading the whole table. Be sure to change the variable name! $read=“SELECT * FROM `student_tables`.`karenmayes` "; Then, copy & paste the lines that report an error with the query
103
Count the number of rows
There is a PHP command that asks MySQL how many rows are in the table. $num_rows = mysql_num_rows($read); Where we will store the number of rows The command to retrieve the number of rows The query that gets the table data, as defined in the last step
104
Use a while statement to set up a counter
while($counter<$num_rows){ $index=$counter +1 (We’ll insert the instructions here) $counter++; } We want to display our family data in that middle part Our index values start at 1, not 0
105
Get all table data You aren’t going to understand all the syntax here. (There just isn’t time!) However, at home, you could easily google “Show all data in MySQL table using PHP” Start by selecting all the data in the table $sql = "SELECT * FROM `student_tables`.`karenmayes`"; $result = $conn->query($sql); You can copy and paste this from a text file in the Student FTP folder, called “GetDataSyntax.txt”.
106
Print all table data This will go through every entry in your table, and while there are entries to show, it will echo your family data. while($row = mysqli_fetch_assoc($result)) { echo "Name: " . $row["name"]. "<br>Eyes: " . $row["hairColor"]. " <br>Hair: " . $row["hairColor"]. "<br><br><br>"; }
107
You’re done! Check it out!
Go into phpMyAdmin and empty your table. Load up Try it out! There’s so much else to learn! Take your curiosity home!
108
Good Books! Any of the “For Dummies” books PHP 5 and MySQL Bible
109
Download this slide show!
documents/WebDesign2.zip
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.