I've been investigating your technique as a solution to a problem I have. Since I'm a big noob, I'm not convinced I'm conceptualizing the problem correctly. I've been able to get a result close to what I want, but the resulting html is hideous:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$link = mysql_connect('localhost', 'xxx', 'xxxx');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo "Connected successfully"."<br />" . "\n";
mysql_select_db("usaDlrData", $link)
or die("Couldn't select database.");
$sql = 'SELECT usaDlrStates.usState, usaDlr.*'
. ' FROM usaDlr'
. ' LEFT JOIN usaDlrStates ON usaDlr.usStateAbbr = usaDlrStates.usStateAbbr '
. ' ORDER BY usaDlrStates.usState ASC';
$result = mysql_query($sql, $link);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
function nullCheck($varName) {
$showVar = "";
if (strlen($varName) > 1) {
$showVar = $varName . "<br />\n";
}
return $showVar;
}
echo "<table border='2'>";
$cellCount = 1;
$recordCount = 0;
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
$usState = $row{'usState'};
$usaDlrName = $row{'usaDlrName'};
$usaDlrAddr = $row{'usaDlrAddr'};
$usaDlrAddr1 = $row{'usaDlrAddr1'};
$usaDlrCity = $row{'usaDlrCity'};
$usStateAbbr = $row{'usStateAbbr'};
$usaDlrZip = $row{'usaDlrZip'};
$usaDlrPhone = $row{'usaDlrPhone'};
$usaDlrPhone2 = $row{'usaDlrPhone2'};
$usaDlrZip = $row{'usaDlrZip'};
$usaDlrFax = $row{'usaDlrFax'};
$usaDlrEmail = $row{'usaDlrEmail'};
$usaDlrWebSite = $row{'usaDlrWebSite'};
$usaDlrLogo = "<img src='http://www.scubadorag.com/coco/adsLogos/".$row{'usaDlrLogo'}."' alt='Visit ".$usaDlrName.".' />";
$usaDlrID = $row{'usaDlrID'};
$record = "\t\t".$usaDlrName."<br />\n"
."\t\t".$usaDlrAddr."<br />\n"
."\t\t".nullCheck($usaDlrAddr1)
.$usaDlrCity.", ".$row{'usStateAbbr'}."<br />". "\n"
."\t\t".$usaDlrZip."<br />". "\n"
."\t\t".nullCheck($usaDlrPhone)
."\t\t".nullCheck($usaDlrPhone2)
."\t\t".nullCheck($usaDlrFax)
."\t\t<a href='mailto:".$usaDlrEmail."'>".$usaDlrEmail."</a>". "<br />\n"
."\t\t<a href='http://".$usaDlrWebSite."'>".$usaDlrWebSite."</a><br />\n"
."\t\t".$usaDlrLogo."<br />\n";
while ($usState != $usaStateHeader) {
echo "<tr>\n\t<th colspan='3'>\n\t\t<h1>".$usState."</h1>\n\t</th>\n</tr>\n";
$usaStateHeader = $usState;
print "<tr>\r";
$cellCount = 1;
}
if ($cellCount == 3) {
print "\t<td align='left' valign='top'>\r".$record."\n\t</td>\n</tr>\r";
$cellCount = 1;
} else {
print "\t<td align='left' valign='top'>".$record."</td>\r";
$cellCount++;
}
}
echo "</table>";
mysql_free_result($result);
mysql_close($link);
?>
</body>
</html>
I've been working with your example as it's more flexible, it doesn't get me the
<th>*</th>
row, but the results are much more attractive, and ah, valid.
Please be gentle!
Thanks again,
B.