[thelist] PHP Mysql problem

Simon Willison cs1spw at bath.ac.uk
Tue Oct 7 05:09:52 CDT 2003


Simon Perry wrote:
> http://www.charterflights.co.uk/testcode/code.txt

No idea about your database problem I'm afraid, but I've got a tip for 
improving the readability of your code:

You use the following idiom for constructing a string of HTML:

$page_content="<h1>Charter flights to $fields[3] in $area_name ...";
$page_content.="<p>Charter flights from the UK to $destination ...";
$page_content.="... etc ...";

A tidier way of doing this is to use HEREDOC syntax:

$page_content = <<<EOD
<h1>Charter flights to {$fields[3]} in $area_name from the UK</h1>

<p>Charter flights from the UK to $destination are run mainly to provide 
transport for package holidays, excess seats are sold off on a flight 
only basis. The cost of these seats is usually cheap when compared to 
scheduled flights. Charter airlines can offer these cheap flights by 
offereing more restricted services than the major scheduled or low cost 
airlines.</p>

<div id="div1"><span id="searchTitle"><a 
href="javascript:displayIframe();"><span id="span1"></span> Search for 
and book online flights to {$fields[3]}</a></span></div>

<div id="search"><iframe id="searchFrame" 
src="http://www.charterflights.co.uk/bin/flight-search.cgi?dest={$fields[2]}" 
marginwidth="0" marginheight="0" width="550" height="850" 
frameborder="1"></iframe></div>

<h1>{$fields[3]} information</h1>

<p>{$fields[5]}</p>
EOD;

This has a number of advantages: you can neatly run the definition over 
multiple lines, you no longer have to \"escape your quotes\", you still 
get the benefits of variable interpolation (I prefer to wrap array 
indexes in curly braces {$like_this[0]} for clarity). I find this format 
much easier to read and maintain.

Another tip you might find useful: mysql_fetch_row() returns an array 
that is indexed by the name of the columns as well as by number. This 
can make code much clearer - instead of saying {$field[3]} you can have 
{$field['DESTINATION_NAME']}, which has a more obvious meaning.

I hope you find those tips useful, and I'm sorry I couldn't help with 
the databaser error.

Best regards,

Simon Willison
http://simon.incutio.com/





More information about the thelist mailing list