Errata

Learning PHP, MySQL, JavaScript, CSS & HTML5

Errata for Learning PHP, MySQL, JavaScript, CSS & HTML5

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date Submitted
Printed Page 293
Ex 12-10

Variable names are variable names, but for the echoed text:
Fahrenheit and Celsius are proper names, and those units of measure are abbreviated with a capital 'F' and 'C'. Degrees centigrade, with a lowercase c, is possible, but the text leans in favor of Anders Celsius.

John Auman  Aug 17, 2022 
PDF Page 128
strtolower

The code does not work with the Russian symbols.

Now:
$lowered = strtolower("люБОЕ нУжное Вам количество Букв и Знаков Пунктуации");
echo $lowered;

Should be:
$lowered = mb_strtolower("люБОЕ нУжное Вам количество Букв и Знаков Пунктуации");
echo $lowered;

The code works both with the russian and english symbols.

Almanov Shakhnazar  Dec 16, 2018 
PDF Page 120
Example 4.36 (The last line in the code)

The question mark, as the <php? finishing tag is not printed.

Пример 4.36. Перехват ошибки деления на нуль с помощью инструкции continue

<?php
$j = 10;
while ($j > –10)
{
$j--;
if ($j == 0) continue;
echo (10 / $j) . "<br>";
}
> // Here is a mistake. Should be ?>

Almanov Shakhnazar  Dec 15, 2018 
PDF Page 7
last lines of example 11-6 in update mysqli pdf file

The entry reads:

function get_post($connection, $var)
{
return $connection->real_escape_string($_POST[$var]);
}

however in mysqli wouldn't it be:

function get_post($connection, $var)
{
return $connection->mysqli_real_escape_string($_POST[$var]);
}

Also...

The line:

return $connection->mysqli_real_escape_string($_POST[$var]);

is giving a "syntax error, unexpected $end" in Dreamweaver CC 18 (preference is set to php 5.6) and nothing I've tried seems to resolve it.

Robin McCain  Jan 31, 2018 
Other Digital Version Loc 1241
3rd para after Constants subtitle

Kindle:

Should it be 'constant' instead of 'variable' in: "Then, to read the contents of the variable,"

Dougie Nisbet  Jul 10, 2016 
ePub location 4657 of 17834 (Kindle for Mac)


The
```
mysqldump -u user -ppassword --no-create-info --tab=c:/temp --fields-terminated-by=',' publications
```
command does not work on a Mac.

```
mysqldump -u user -ppassword --no-create-info --tab=/tmp --fields-terminated-by=',' publications
```
does work.

Anonymous  Jun 28, 2016 
Printed Page 457
Figure 19-2

Figure 19-2 is said to be a screenshot of a certificate created using multiple backgrounds. However, the image shown is the image on how to set your browser to use a custom stylesheet.

Anonymous  Jun 06, 2016 
PDF Page 547
4th paragraph

The fourth paragraph starts with, "You can also apply a filter to a selection using the filtert method". There's a typo in the method name. It should be 'filter', not 'filtert'.

Scott Lumsden  Mar 19, 2016 
Printed Page book
cover

I believe that the sugar gliders on the front of the book were a mistake. You see, they have nothing to do with the topic and only cause grief. Perhaps something less nature-oriented and more tied to the technical field we've chosen to enlighten ourselves with.

Although I am certain this book contained detailed, accurate information on the advertised languages, I'll never know because of a horrible cat by the name of sam. I realize that sam should be capitalized, but I'm leaving it lower-case in a small act of defiance due to my pure hatred for the cat named sam.

You see, sam is a horrible, evil cat that only lives to make life worse for those that live near it. Do you think that this evil cat believes that by "killing" the sugar gliders, he has somehow earned his keep? No. I assure you, he is acting out of an evil intent to cause chaos and destruction.

Let me take you back to a week ago when sam showed up. I had been studying and listening to my (thanks to sam, ex) girlfriend's bird, Juliette, singing in the window. It was a time of peace. I was able to focus on my studies and enjoy this amazing bird's singing. That bird was the perfect pet.

Then, suddenly... Enter sam. Freakin' sam. I'll spare you the details, but after proving his skills at being a jerk, there was no more left of Juliette than of my book.

Anyway... The book. Please make note for future publications that the sugar gliders may be a mistake.

Also, maybe it's the glue or the ink, but it makes sam stink. Now I have a noisy, smelly, evil cat that won't leave terrorizing my apartment.

Anonymous  Aug 05, 2015 
Printed Page 168
Bottom of Example 7-17

Missing closing } for the else actions on the second to last line.

NOTE: This is not the case for the file downloaded from the website for Example 7-17.

Edward Holmes  Mar 10, 2015 
Printed Page 163
Top of page, running example 7-15

Book asks to type in example 7-15 and then save as "upload.php" before running script.

I was pressing the "Run > Internet Explorer" button from php Designer 8 and when the file to be uploaded was selected it would ask me where I wanted to save "upload.php".

After much head scratching, with both the books example file, downloaded from this website and my own script, I realised that php Designer runs scripts from this location:

"C:\Program Files (x86)\Zend\Apache2\htdocs\~upload.php.htm"

Not "localhost/upload.php" as you would expect.

Entering "localhost/upload.php" into one of your web browsers will have the desired result.

Hope this helps anyone who has got stuck at the same point.

Edward Holmes  Mar 10, 2015 
PDF Page 247
Example 10-6

The for loop uses the $rows variable. The mysql_fetch_row() function uses the $row variable, not the for loop $rows variable. Without there being any apparent variable interaction between the for loop and the mysql_fetch_row() function, perhaps it should be explained how this construct is able to progress from processing one row of data to the next row.

Thanks,

Steve

Steve T  Oct 07, 2014 
PDF Page 203
1st paragraph

If the search is for wordOne "and" wordTwo, then why do the following two queries return the same result? Please note that wordTwo in the second query is tod, which is not found.
1.) SELECT author,title FROM classics WHERE MATCH(author,title) AGAINST('adventures tom');
2.) SELECT author,title FROM classics WHERE MATCH(author,title) AGAINST('adventures tod');

Please resolve or advise.

Thanks,

Steve

Steve T  Oct 07, 2014 
PDF Page 165
Table 7-6

p163 Example 7-15 uses $_FILES['filename']['name'] and $_FILES['filename']['tmp_name']. However, p165 Table 7-6 uses ['file'], not ['filename']. Please resolve this apparent conflict or advise.

Steve T  Oct 07, 2014 
PDF Page 151
1st sentence "Using sprintf" section

Perhaps change
...but need it to use elsewhere...
to
...but need to use it elsewhere...

Steve T  Oct 07, 2014 
PDF Page 126
Example 5-24

Perhaps should have explicitly stated that, because of inheritance, instantiating Subscriber allows access to User properties and methods without the need to instantiate User.

Steve T  Oct 07, 2014 
PDF Page 122
4th paragraph

Perhaps change
"The value you use must be a constant..."
to
"The value you use must be a literal..."

Steve T  Oct 07, 2014 
Printed Page 206
United Kingdom

SELECT category,COUNT(author) FROM classics GROUP BY category;

returns 4 Classic Fiction, 1 Non-Fiction, 1 Play. Not 3 Classic Fiction, 1 Non-Fiction, 1 Play as stated at the top of page.206.

To my amazement I tried the following and it returned the result on page 206 (I'm very much a beginner)

SELECT category,COUNT(DISTINCT author) FROM classics GROUP BY category;

Anonymous  Sep 23, 2014