PHP and MySQL Web Development, 4th Edition (Developer's Library Series)

Paperback
from $0.00

Author: Luke Welling

ISBN-10: 0672329166

ISBN-13: 9780672329166

Category: Applications & Languages - Databases

PHP and MySQL Web Development, Fourth Edition \ The definitive guide to building database-drive Web applications with PHP and MySQL \ PHP and MySQL are popular open-source technologies that are ideal for quickly developing database-driven Web applications. PHP is a powerful scripting language designed to enable developers to create highly featured Web applications quickly, and MySQL is a fast, reliable database that integrates well with PHP and is suited for dynamic Internet-based...

Search in google:

Topics covered: The MySQL database server (for both Unix and Windows) Accessing MySQL databases through PHP scripting (the letters don't really stand for anything) Database creation and modification PHP tricks in order of increasing complexity--everything from basic SQL queries to secure transactions for commerce Authentication Network connectivity Session management Content customization Booknews Shows how to combine the PHP scripting language with the MySQL database to produce interactive web sites. The guide provides examples that demonstrate tasks such as authenticating users, constructing a shopping cart, generating PDF documents and images dynamically, sending and managing email, facilitating user discussions, and managing content. Significant attention is paid to the importance of security. The CD-ROM contains PHP 4, MySQL, and Apache source code and binaries. Annotation c. Book News, Inc., Portland, OR (booknews.com)

Chapter 3: Using Arrays\ This chapter shows you how to use an important programming construct—arrays. The variables that we looked at in the previous chapters are scalar variables, which store a single value. An array is a variable that stores a set or sequence of values. One array can have many elements. Each element can hold a single value, such as text or numbers, or another array. An array containing other arrays is known as a multidimensional array.\ PHP supports both numerically indexed and associative arrays. You will probably be familiar with numerically indexed arrays if you've used a programming language, but unless you use PHP or Perl, you might not have seen associative arrays before. Associative arrays let you use more useful values as the index. Rather than each element having a numeric index, they can have words or other meaningful information.\ We will continue developing the Bob's Auto parts example using arrays to work more easily with repetitive information such as customer orders. Likewise, we will write shorter, tidier code to do some of the things we did with files in the previous chapter.\ Key topics covered in this chapter include\ \ \ What is an array?\ \ \ Numerically indexed arrays\ \ \ Associative arrays\ \ \ Multidimensional arrays\ \ \ Sorting arrays\ \ \ Further reading\ \ \ What Is an Array?\ We looked at scalar variables in Chapter 1, "PHP Crash Course." A scalar variable is a named location in which to store a value; similarly, an array is a named place to store a set of values, thereby allowing you to group common scalars.\ Bob's product list will be the array for our example. In Figure 3.1, you can see a list of three products stored in an array format and one variable, called $products, which stores the three values. (We'll look at how to create a variable like this in a minute.)\ Figure 3.1\ Bob's products can be stored in an array.\ After we have the information as an array, we can do a number of useful things with it. Using the looping constructs from Chapter 1, we can save work by performing the same actions on each value in the array. The whole set of information can be moved around as a single unit. This way, with a single line of code, all the values can be passed to a function. For example, we might want to sort the products alphabetically. To achieve this, we could pass the entire array to PHP's sort() function.\ The values stored in an array are called the array elements. Each array element has an associated index (also called a key) that is used to access the element.\ Arrays in most programming languages have numerical indexes that typically start from zero or one. PHP supports this type of array.\ PHP also supports associative arrays, which will be familiar to Perl programmers. Associative arrays can have almost anything as the array indices, but typically use strings.\ We will begin by looking at numerically indexed arrays.\ Numerically Indexed Arrays\ These arrays are supported in most programming languages. In PHP, the indices start at zero by default, although you can alter this.\ Initializing Numerically Indexed Arrays\ To create the array shown in Figure 3.1, use the following line of PHP code:\ \ \ $products = array( "Tires", "Oil", "Spark Plugs" );\ \ \ This will create an array called products containing the three values given—"Tires", "Oil", and "Spark Plugs". Note that, like echo, array() is actually a language construct rather than a function.\ Depending on the contents you need in your array, you might not need to manually initialize them as in the preceding example.\ If you have the data you need in another array, you can simply copy one array to another using the = operator.\ If you want an ascending sequence of numbers stored in an array, you can use the range() function to automatically create the array for you. The following line of code will create an array called numbers with elements ranging from 1 to 10:\ \ \ $numbers = range(1,10);\ \ \ If you have the information stored in file on disk, you can load the array contents directly from the file. We'll look at this later in this chapter under the heading "Loading Arrays from Files."\ If you have the data for your array stored in a database, you can load the array contents directly from the database. This is covered in Chapter 10, "Accessing Your MySQL Database from the Web with PHP."\ You can also use various functions to extract part of an array or to reorder an array. We'll look at some of these functions later in this chapter, under the heading "Other Array Manipulations."\ Accessing Array Contents\ To access the contents of a variable, use its name. If the variable is an array, access the contents using the variable name and a key or index. The key or index indicates which stored values we access. The index is placed in square brackets after the name.\ Type $products[0], $products[1], and $products[2] to use the contents of the products array.\ Element zero is the first element in the array. This is the same numbering scheme as used in C, C++, Java, and a number of other languages, but it might take some getting used to if you are not familiar with it.\ As with other variables, array elements contents are changed by using the = operator. The following line will replace the first element in the array "Tires" with "Fuses".\ \ \ $products[0] = "Fuses";\ \ \ The following line could be used to add a new element—"Fuse"—to the end of the array, giving us a total of four elements:\ \ \ $products[3] = "Fuses";\ \ \ To display the contents, we could type\ \ \ echo "$products[0] $products[1] $products[2] $products[3]";\ \ \ Like other PHP variables, arrays do not need to be initialized or created in advance. They are automatically created the first time you use them.\ The following code will create the same $products array:\ \ \ $products[0] = "Tires";\ $products[1] = "Oil";\ $products[2] = "Spark Plugs";\ \ \ If $products does not already exist, the first line will create a new array with just one element. The subsequent lines add values to the array.\ Using Loops to Access the Array\ Because the array is indexed by a sequence of numbers, we can use a for loop to more easily display the contents:\ \ \ for ( $i = 0; $i<3; $i++ )\ echo "$products[$i] ";\ \ \ This loop will give similar output to the preceding code, but will require less typing than manually writing code to work with each element in a large array. The ability to use a simple loop to access each element is a nice feature of numerically indexed arrays. Associative arrays are not quite so easy to loop through, but do allow indexes to be meaningful.\ Associative Arrays\ In the products array, we allowed PHP to give each item the default index. This meant that the first item we added became item 0, the second item 1, and so on. PHP also supports associative arrays. In an associative array, we can associate any key or index we want with each value.\ Initializing an Associative Array\ The following code creates an associative array with product names as keys and prices as values.\ \ \ $prices = array( "Tires"=>100, "Oil"=>10, "Spark Plugs"=>4 );\ \ \ Accessing the Array Elements\ Again, we access the contents using the variable name and a key, so we can access the information we have stored in the prices array as $prices[ "Tires" ], $prices[ "Oil" ], and $prices[ "Spark Plugs" ].\ Like numerically indexed arrays, associative arrays can be created and initialized one element at a time.\ The following code will create the same $prices array. Rather than creating an array with three elements, this version creates an array with only one element, and then adds two more.\ \ \ $prices = array( "Tires"=>100 );\ $prices["Oil"] = 10;\ $prices["Spark Plugs"] = 4;\ \ \ Here is another slightly different, but equivalent piece of code. In this version, we do not explicitly create an array at all. The array is created for us when we add the first element to it.\ \ \ $prices["Tires"] = 100;\ $prices["Oil"] = 10;\ $prices["Spark Plugs"] = 4;\ \ \ Using Loops with each() and list()\ Because the indices in this associative array are not numbers, we cannot use a simple counter in a for loop to work with the array. The following code lists the contents of our $prices array:\ \ \ while( $element = each( $prices ) )\ {\ echo $element[ "key" ];\ echo " - ";\ echo $element[ "value" ];\ echo "<br>";\ }\ \ \ The output of this script fragment is shown in Figure 3.2.\ Figure 3.2\ An each statement can be used to loop through arrays.\ In Chapter 1, we looked at while loops and the echo statement. The preceding code uses the each() function, which we have not used before. This function returns the current element in an array and makes the next element the current one. Because we are calling each() within a while loop, it returns every element in the array in turn and stops when the end of the array is reached.\ In this code, the variable $element is an array. When we call each(), it gives us an array with four values and the four indexes to the array locations. The locations key and 0 contain the key of the current element, and the locations value and 1 contain the value of the current element. Although it makes no difference which you choose, we have chosen to use the named locations, rather than the numbered ones.\ There is a more elegant and more common way of doing the same thing. The function list() can be used to split an array into a number of values. We can separate two of the values that the each() function gives us like this...

IUsing PHP1PHP crash course112Storing and retrieving data573Using arrays794String manipulation and regular expressions1055Reusing code and writing functions1296Object-oriented PHP1577Exception handling191IIUsing MySQL8Designing your Web database2059Creating your Web database21710Working with your MySQL database24111Accessing your MySQL database from the Web with PHP26512Advanced MySQL administration28513Advanced MySQL programming307IIIE-commerce and security14Running an e-commerce site32315E-commerce security issues33716Implementing authentication with PHP and MySQL35717Implementing secure transactions with PHP and MySQL379IVAdvanced PHP techniques18Interacting with the file system and the server40119Using network and protocol functions41920Managing the date and time43921Generating images45122Using session control in PHP47923Other useful features495VBuilding practical PHP and MySQL projects24Using PHP and MySQL for large projects50725Debugging52326Building user authentication and personalization54127Building a shopping cart57928Building a content management system62529Building a Web-based email service65730Building a mailing list manager69531Building Web forums75132Generating personalized documents in portable document format (PDF)78333Connecting to Web services with XML and SOAP819VIAppendixesAInstalling PHP and MySQL867

\ From Barnes & NobleThe Barnes & Noble Review\ Thousands of web developers have found all the database help they need in PHP and MySQL Web Development. In their new Third Edition, Luke Welling and Laura Thomson update their classic to reflect new enhancements ranging from PHP5’s new object model to MySQL 5’s long-awaited stored procedures. \ As before, you’ll find loads of practical sample code (all of it on the accompanying CD-ROM). The authors begin with a crash course on PHP itself: basic syntax, storing and retrieving data from flat file databases, using arrays; working with strings and regular expressions; functions; code reuse; and finally, object-oriented PHP.\ One crucial PHP5 enhancement is exception handling: a unified, extensible, object-oriented solution for handling errors. Welling and Thompson cover PHP5 error handling in detail, from basic concepts and control structures through user-defined exceptions.\ Next, you’ll master MySQL from the web developer’s point of view. Welling and Thompson introduce mysqli, PHP5’s new library for connecting with MySQL with either object-oriented or procedural syntax. Along the way, you’ll learn how to use MySQL's privilege system to secure your databases more effectively, and how to address the performance issues that arise in web database applications.\ You'll find chapter-length coverage of networking, session control, interactions with filesystems and servers, managing dates and times, generating images, debugging, and more. The book’s highlight: seven start-to-finish projects, ranging from content management to email, generating on-the-fly PDFs to connecting with web services. Follow along with these case studies, and you should be ready to write just about anything. Bill Camarda\ Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2003 and Upgrading & Fixing Networks for Dummies, Second Edition.\ \ \ \ \ \ From the Publisher“This book by Welling & Thomson is the only one which I have found to be indispensable.The writing is clear and straightforward but never wastes my time.The book is extremely well laid out.The chapters are the right length and chapter titles quickly take you where you want to go.”\ —Wright Sullivan, President,A&E Engineering, Inc., Greer South Carolina\ “There are several good introductory books on PHP, but Welling & Thomson is an excellent handbook for those who wish to build up complex and reliable systems. It’s obvious that the authors have a strong background in the development of professional applications and they teach not only the language itself, but also how to use it with good software engineering practices.”\ —Javier Garcia, senior telecom engineer,\ Telefonica R&D Labs, Madrid\ “This book rocks! I am an experienced programmer, so I didn’t need a lot of help with PHP syntax; after all, it’s very close to C/C++. I don’t know a thing about databases, though, so when I wanted to develop a book review engine (among other projects) I wanted a solid reference to using MySQL with PHP. I have O’Reilly’s mSQL and MySQL book, and it’s probably a better pure-SQL reference, but this book has earned a place on my reference shelf…Highly recommended.”\ —Paul Robichaux\ “The true PHP/MySQL bible, PHP and MySQL Web Development by Luke Welling and Laura Thomson, made me realize that programming and databases are now available to the commoners. Again, I know 1/10000th of what there is to know, and already I’m enthralled.”\ —Tim Luoma,TnTLuoma.com\ \ \ \ BooknewsShows how to combine the PHP scripting language with the MySQL database to produce interactive web sites. The guide provides examples that demonstrate tasks such as authenticating users, constructing a shopping cart, generating PDF documents and images dynamically, sending and managing email, facilitating user discussions, and managing content. Significant attention is paid to the importance of security. The CD-ROM contains PHP 4, MySQL, and Apache source code and binaries. Annotation c. Book News, Inc., Portland, OR (booknews.com)\ \