I need som assistance placeing an HTML table within a PHP script. I thought I could just echo it, but I am getting a parse error. Here is the PHP code: (the parse error comes on line 339

/* declare some relevant variables */
$DBhost = "localhost";
$DBuser = "username";
$DBpass = "password";
$DBName = "allin1em_catalog";
$table = "items";
mysql_connect($DBhost,$DBuser,$DBpass) or die("Unable to connect to database");
@mysql_select_db("$DBName") or die("Unable to select database $DBName");
$sqlquery = "SELECT * FROM $table WHERE store = 'Luminescents'";
$result = mysql_query($sqlquery);
while($row = mysql_fetch_array($result)) {
echo "". $row[title] .
 "http://www.allin1emall.com/images/ ". $row[thumb]. " title=" alt=""
 style="width: 150px; height: 150px;">
      ". $row[description]. "". $row[retail]. "

echo "No

Any help will be much appreciated.


Oopps, since this isn't the full page with the entire code you have no idea which is line 339. It is either the while line of the echo line right after it. Hope that helps.

echo "<table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 400px;">

The problem is that you're using double quotes inside double quotes (and you also forgot to end the statement properly). PHP thinks you've finished echoing, when you obviously haven't. Just change the outer pair to single quotes, like so:

echo '<table cellpadding="2" cellspacing="2" border="1" style="text-align: left; width: 400px;">

and obviously the closing ".; to '; (why was that . there in the first place??)

Another solution is slightly simpler - get rid of the echo altogether, and close the php with ?> just before your table code, and <?php again afterwards.

Infact, I recommend you only use double quotes when neccessarily, as they add to execution time - the difference is as follows:

$var = 'cool';
echo "The var is: $var"; // It returns:  The Var is: cool
echo 'The var is: $var'; // It returns:  The Var is: $var

So, with double quotes, the parser checks for any variables inside, which very slightly slows things down.

You can also do this:

echo "<table cellpadding=\"2\" cellspacing=\"2\" border=\"1\"
   style=\"text-align: left; width: 400px;\">";

Just sick a \ infrong of a PHP character you don't want to do anything so like $, ", ' etc change to \$, \", \' etc and the PHP engine will just treat them like any normal character while removing the \

For large blocks of HTML, I just close the php block and use regular HTML. If I have to do output of a PHP variable, I just use <?=$variable?>.

just keep in mind one thing before echo any html tag

use "<tag>" then all the properties of this tag will "<tag name='abc'>"

and vice versa.

you will never get any error!


Just stop the php flow and start a normal html with quick php inserts.

like <tr><td><?=$row[foo]?></tr></td>

very handy :)