cvs: php-hosts-web / showinfo.php
| From: | jim winstead | Date: | Tue, 23 Apr 2002 01:26:56 +0000 |
| Subject: | cvs: php-hosts-web / showinfo.php | ||
| Groups: | php.mirrors | ||
| Request: | Send a blank email to php-mirrors+get-9795@lists.php.net to get a copy of this message | ||
jimw Mon Apr 22 21:26:56 2002 EDT
Modified files:
/php-hosts-web showinfo.php
Log:
use one query, with joins, instead of lots of little queries. also re-introduce row coloring.
Index: php-hosts-web/showinfo.php diff -u php-hosts-web/showinfo.php:1.4 php-hosts-web/showinfo.php:1.5 --- php-hosts-web/showinfo.php:1.4 Sun Apr 21 21:36:09 2002 +++ php-hosts-web/showinfo.php Mon Apr 22 21:26:56 2002 @@ -1,4 +1,4 @@ -<? +<?php require ("shared.inc"); $NA = "<I>info not available</I>"; @@ -6,164 +6,115 @@ $hostid = (int)$hostid; if (!$hostid) { header("Location: /"); exit; } -$query = "select * from $HOSTS_TABLE where HostID=".$hostid; -$q1 = mysql_query($query) or die ("\"$query\" is a bad query."); -$host = mysql_fetch_array($q1); -mysql_free_result($q1); - -commonHeader($host["HostName"]); - -$query = "select * from $OPTIONS_TABLE"; -$q1 = mysql_query($query) or die ("\"$query\" is a bad query."); -while ($temp = mysql_fetch_array($q1)) { - $id = $temp["OptionID"]; - $OPTIONS[$id] = $temp["OptionName"]; +$query = "SELECT * FROM $HOSTS_TABLE WHERE HostID=$hostid"; +$res = mysql_query($query) + or die("query failed: ".mysql_error()); +$host = mysql_fetch_assoc($res); + +commonHeader(htmlentities($host["HostName"])); + +if ($login && !isset($_COOKIE['HOSTID'])) {?> +<div class="errors"> +It looks like you just tried to log in, but don't have cookies +enabled in your browser. You'll need to enable them, and then +<a href="login.php">go back and log in again</a>. +</div> +<?php } -mysql_free_result($q1); -?> - -<h3>Show Information</h3> +$userhostid = 0; +if ($_COOKIE['HOSTID']) { + list($userhostid,$pass) = explode(":",$_COOKIE['HOSTID'],2); +} -<FORM> -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 WIDTH=100%> +$general = array( + 'Main URL' => '<a href="http://'.htmlentities($host['HostURL']).'">'.htmlentities($host['HostURL']).'</a>', + 'Info Email' => htmlentities($host['HostEmail']), + 'Phone' => htmlentities($host['HostPhone']), + 'Fax' => htmlentities($host['HostFax']), + 'Location' => htmlentities(sprintf("%s%s%s", $host['HostCity'], ($host['HostCity'] && $host['HostState']) ? ', ' : '', $host['HostState'])), + 'Country' => listCountries("lookup",$host["HostCountry"]) . " ($host[HostCountry])", +); +reset($general); -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD colspan=2><B><? echo $host["HostName"]; ?></B></TD> -</TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Main URL:</TD> -<TD><A HREF="http://<? echo $host["HostURL"]; ?>"><? echo $host["HostURL"]; ?></A></TD> -</TR> - -<? /* -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>PHP Info URL:</TD> -<TD><? -if ($host["HostInfoURL"]) { - echo "<A HREF=\"http://" . $host["HostInfoURL"] . "\">" . $host["HostInfoURL"] . "</A>"; -} else { - echo $NA; -} -?></TD></TR> -*/ ?> +?> -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Info Email:</TD> -<TD><? -if ($host["HostEmail"]) { - echo "<A HREF=\"mailto:" . $host["HostEmail"] . "\">" . $host["HostEmail"] . "</A>"; -} else { - echo $NA; +<table border="0" cellspacing="0" cellpadding="5" width="100%"> + <tr class="header"> + <td colspan="2"><b><?php echo htmlentities($host['HostName']);?></b></td> + </tr> + +<?php +$i = 0; +while (list($k,$v) = each($general)) {?> + <tr valign="top" class="<?php echo $i++ % 2 ? 'odd' : 'even'?>"> + <th align="right"><?php echo $k?>:</th> + <td><?php echo $v ? $v : $NA;?></td> + </tr> +<?php } -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Phone:</TD> -<TD><? -echo ($host["HostPhone"] ? $host["HostPhone"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Fax:</TD> -<TD><? -echo ($host["HostFax"] ? $host["HostFax"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Location:</TD> -<TD><? -echo ($host["HostCity"].$host["HostState"] ? $host["HostCity"].", ".$host["HostState"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Country:</TD> -<TD><? echo listCountries("lookup",$host["HostCountry"]); ?> (<? echo $host["HostCountry"]; ?>)</TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD colspan=2><B>Services/Features</B></TD> -</TR> - -<? - $query = "select * from $SERVICES_TABLE order by Sort,ServiceName"; - $q1 = mysql_query($query) or die ("\"$query\" is a bad query."); - - $i=0; - while ($service=mysql_fetch_array($q1)) { - $sid = $service["ServiceID"]; - - echo "<TR VALIGN=top BGCOLOR=\"" . $COLOR["ltgrey".(($i%2)+1)] . "\">\n"; - echo "<TD ALIGN=right>" . $service["ServiceName"] . ": </TD>\n"; - echo "<TD>\n"; - - unset($value); - - $query = "select * from $HOST_SERVICES_TABLE where HostID=$hostid and ServiceID=$sid"; - $q2 = mysql_query($query) or die ("\"$query\" is a bad query."); - if (mysql_num_rows($q2)!=0) { - while($temp = mysql_fetch_array($q2)) { - $value[] = array ("ID"=>$temp["OptionID"], "Value"=>$temp["OptionValue"]); - } - } - if ($value) { - switch ($service["ServiceType"]) { - case "single": - $x = $value[0]["ID"]; - echo $OPTIONS[$x] . "<BR>\n"; - break; - case "multiple": - while (list(,$v)=each($value)) { - $x = $v["ID"]; - echo $OPTIONS[$x] . "<BR>\n"; - } - break; - case "multiplev": - while (list(,$v)=each($value)) { - $x = $v["ID"]; - $y = $v["Value"]; - echo $OPTIONS[$x] . " " . $y ."<BR>\n"; - } - break; - case "boolean": - echo ($value[0]["ID"] ? "Yes" : "No") . "<BR>\n"; - break; - case "booleanv": - echo ($value[0]["ID"] ? "Yes ".$value[0]["Value"] : "No") . "<BR>\n"; - break; - case "text": - echo $value[0]["Value"] . "<BR>\n"; - break; - case "number": - echo $value[0]["Value"] . "<BR>\n"; - break; - case "free": - echo nl2br(mysql_get_one("SELECT content FROM host_value WHERE HostId = $hostid AND ServiceId = $sid")); - break; - } - } else { - echo $NA; +?> + <tr valign="top" class="header"> + <td colspan="2"><b>Services and Features</b></td> + </tr> +<?php + +$query = "SELECT ServiceName,ServiceType,OptionName,OptionValue,OptionValueEx," + . "host_services.OptionId AS opt" + . " FROM services" + . " LEFT JOIN host_services" + . " ON services.ServiceID = host_services.ServiceID" + . " AND host_services.HostID = $hostid" + . " LEFT JOIN options" + . " ON services.ServiceID = options.ServiceID" + . " AND host_services.OptionID = options.OptionID" + . " ORDER BY services.Sort,options.Sort"; + +$res = mysql_query($query) + or die("query failed: ".mysql_error()."<br />".htmlentities($query)); + +$service = mysql_fetch_assoc($res); +$last = $service['ServiceName']; +do {?> + <tr valign="top" class="<?php echo $i++ % 2 ? 'odd' : 'even';?>"> + <th align="right"><?php echo $service['ServiceName']?></th> + <td><?php + do { + switch ($service['ServiceType']) { + case 'single': + case 'multiple': + echo $service['OptionName'] ? htmlentities($service['OptionName']) . "<br />" : $NA; + break; + case 'multiplev': + echo $service['OptionName'] ? htmlentities($service['OptionName']) . " " . htmlentities($service['OptionValue']) . "<br />" : $NA; + break; + case 'boolean': + echo isset($service['opt']) ? $service['opt'] ? 'Yes' : 'No' : $NA; + break; + case 'booleanv': + echo isset($service['opt']) ? $service['opt'] ? 'Yes '.htmlentities($service['OptionValue']) : 'No' : $NA; + break; + case 'text': + case 'number': + echo $service['OptionValue'] ? htmlentities($service['OptionValue']) : $NA; + break; + case 'free': + echo $service['OptionValueEx'] ? nl2br(htmlentities($service['OptionValueEx'])) : $NA; + break; } - echo "\n</TD>\n"; - echo "</TR>\n\n"; - $i++; - } + $service = mysql_fetch_assoc($res); + } while ($service['ServiceName'] == $last); + $last = $service['ServiceName']; ?> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD align=left> -<INPUT TYPE="button" VALUE=" Back " onClick="history.go(-1);"><BR> -</TD> -<TD align=right> -<SMALL> + </td> + </tr> +<?php +} while ($service); +?> +</table> +<small> NOTE: This site makes no claim that the above information is accurate.<BR> -</SMALL> -</TD> -</TR> - -</TABLE> -</FORM> - -<? +</small> +<?php commonFooter(); ?>
Index: php-hosts-web/showinfo.php diff -u php-hosts-web/showinfo.php:1.4 php-hosts-web/showinfo.php:1.5 --- php-hosts-web/showinfo.php:1.4 Sun Apr 21 21:36:09 2002 +++ php-hosts-web/showinfo.php Mon Apr 22 21:26:56 2002 @@ -1,4 +1,4 @@ -<? +<?php require ("shared.inc"); $NA = "<I>info not available</I>"; @@ -6,164 +6,115 @@ $hostid = (int)$hostid; if (!$hostid) { header("Location: /"); exit; } -$query = "select * from $HOSTS_TABLE where HostID=".$hostid; -$q1 = mysql_query($query) or die ("\"$query\" is a bad query."); -$host = mysql_fetch_array($q1); -mysql_free_result($q1); - -commonHeader($host["HostName"]); - -$query = "select * from $OPTIONS_TABLE"; -$q1 = mysql_query($query) or die ("\"$query\" is a bad query."); -while ($temp = mysql_fetch_array($q1)) { - $id = $temp["OptionID"]; - $OPTIONS[$id] = $temp["OptionName"]; +$query = "SELECT * FROM $HOSTS_TABLE WHERE HostID=$hostid"; +$res = mysql_query($query) + or die("query failed: ".mysql_error()); +$host = mysql_fetch_assoc($res); + +commonHeader(htmlentities($host["HostName"])); + +if ($login && !isset($_COOKIE['HOSTID'])) {?> +<div class="errors"> +It looks like you just tried to log in, but don't have cookies +enabled in your browser. You'll need to enable them, and then +<a href="login.php">go back and log in again</a>. +</div> +<?php } -mysql_free_result($q1); -?> - -<h3>Show Information</h3> +$userhostid = 0; +if ($_COOKIE['HOSTID']) { + list($userhostid,$pass) = explode(":",$_COOKIE['HOSTID'],2); +} -<FORM> -<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=5 WIDTH=100%> +$general = array( + 'Main URL' => '<a href="http://'.htmlentities($host['HostURL']).'">'.htmlentities($host['HostURL']).'</a>', + 'Info Email' => htmlentities($host['HostEmail']), + 'Phone' => htmlentities($host['HostPhone']), + 'Fax' => htmlentities($host['HostFax']), + 'Location' => htmlentities(sprintf("%s%s%s", $host['HostCity'], ($host['HostCity'] && $host['HostState']) ? ', ' : '', $host['HostState'])), + 'Country' => listCountries("lookup",$host["HostCountry"]) . " ($host[HostCountry])", +); +reset($general); -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD colspan=2><B><? echo $host["HostName"]; ?></B></TD> -</TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Main URL:</TD> -<TD><A HREF="http://<? echo $host["HostURL"]; ?>"><? echo $host["HostURL"]; ?></A></TD> -</TR> - -<? /* -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>PHP Info URL:</TD> -<TD><? -if ($host["HostInfoURL"]) { - echo "<A HREF=\"http://" . $host["HostInfoURL"] . "\">" . $host["HostInfoURL"] . "</A>"; -} else { - echo $NA; -} -?></TD></TR> -*/ ?> +?> -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Info Email:</TD> -<TD><? -if ($host["HostEmail"]) { - echo "<A HREF=\"mailto:" . $host["HostEmail"] . "\">" . $host["HostEmail"] . "</A>"; -} else { - echo $NA; +<table border="0" cellspacing="0" cellpadding="5" width="100%"> + <tr class="header"> + <td colspan="2"><b><?php echo htmlentities($host['HostName']);?></b></td> + </tr> + +<?php +$i = 0; +while (list($k,$v) = each($general)) {?> + <tr valign="top" class="<?php echo $i++ % 2 ? 'odd' : 'even'?>"> + <th align="right"><?php echo $k?>:</th> + <td><?php echo $v ? $v : $NA;?></td> + </tr> +<?php } -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Phone:</TD> -<TD><? -echo ($host["HostPhone"] ? $host["HostPhone"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Fax:</TD> -<TD><? -echo ($host["HostFax"] ? $host["HostFax"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey1"]; ?>"> -<TD ALIGN=right>Location:</TD> -<TD><? -echo ($host["HostCity"].$host["HostState"] ? $host["HostCity"].", ".$host["HostState"] : $NA); -?></TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltgrey2"]; ?>"> -<TD ALIGN=right>Country:</TD> -<TD><? echo listCountries("lookup",$host["HostCountry"]); ?> (<? echo $host["HostCountry"]; ?>)</TD></TR> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD colspan=2><B>Services/Features</B></TD> -</TR> - -<? - $query = "select * from $SERVICES_TABLE order by Sort,ServiceName"; - $q1 = mysql_query($query) or die ("\"$query\" is a bad query."); - - $i=0; - while ($service=mysql_fetch_array($q1)) { - $sid = $service["ServiceID"]; - - echo "<TR VALIGN=top BGCOLOR=\"" . $COLOR["ltgrey".(($i%2)+1)] . "\">\n"; - echo "<TD ALIGN=right>" . $service["ServiceName"] . ": </TD>\n"; - echo "<TD>\n"; - - unset($value); - - $query = "select * from $HOST_SERVICES_TABLE where HostID=$hostid and ServiceID=$sid"; - $q2 = mysql_query($query) or die ("\"$query\" is a bad query."); - if (mysql_num_rows($q2)!=0) { - while($temp = mysql_fetch_array($q2)) { - $value[] = array ("ID"=>$temp["OptionID"], "Value"=>$temp["OptionValue"]); - } - } - if ($value) { - switch ($service["ServiceType"]) { - case "single": - $x = $value[0]["ID"]; - echo $OPTIONS[$x] . "<BR>\n"; - break; - case "multiple": - while (list(,$v)=each($value)) { - $x = $v["ID"]; - echo $OPTIONS[$x] . "<BR>\n"; - } - break; - case "multiplev": - while (list(,$v)=each($value)) { - $x = $v["ID"]; - $y = $v["Value"]; - echo $OPTIONS[$x] . " " . $y ."<BR>\n"; - } - break; - case "boolean": - echo ($value[0]["ID"] ? "Yes" : "No") . "<BR>\n"; - break; - case "booleanv": - echo ($value[0]["ID"] ? "Yes ".$value[0]["Value"] : "No") . "<BR>\n"; - break; - case "text": - echo $value[0]["Value"] . "<BR>\n"; - break; - case "number": - echo $value[0]["Value"] . "<BR>\n"; - break; - case "free": - echo nl2br(mysql_get_one("SELECT content FROM host_value WHERE HostId = $hostid AND ServiceId = $sid")); - break; - } - } else { - echo $NA; +?> + <tr valign="top" class="header"> + <td colspan="2"><b>Services and Features</b></td> + </tr> +<?php + +$query = "SELECT ServiceName,ServiceType,OptionName,OptionValue,OptionValueEx," + . "host_services.OptionId AS opt" + . " FROM services" + . " LEFT JOIN host_services" + . " ON services.ServiceID = host_services.ServiceID" + . " AND host_services.HostID = $hostid" + . " LEFT JOIN options" + . " ON services.ServiceID = options.ServiceID" + . " AND host_services.OptionID = options.OptionID" + . " ORDER BY services.Sort,options.Sort"; + +$res = mysql_query($query) + or die("query failed: ".mysql_error()."<br />".htmlentities($query)); + +$service = mysql_fetch_assoc($res); +$last = $service['ServiceName']; +do {?> + <tr valign="top" class="<?php echo $i++ % 2 ? 'odd' : 'even';?>"> + <th align="right"><?php echo $service['ServiceName']?></th> + <td><?php + do { + switch ($service['ServiceType']) { + case 'single': + case 'multiple': + echo $service['OptionName'] ? htmlentities($service['OptionName']) . "<br />" : $NA; + break; + case 'multiplev': + echo $service['OptionName'] ? htmlentities($service['OptionName']) . " " . htmlentities($service['OptionValue']) . "<br />" : $NA; + break; + case 'boolean': + echo isset($service['opt']) ? $service['opt'] ? 'Yes' : 'No' : $NA; + break; + case 'booleanv': + echo isset($service['opt']) ? $service['opt'] ? 'Yes '.htmlentities($service['OptionValue']) : 'No' : $NA; + break; + case 'text': + case 'number': + echo $service['OptionValue'] ? htmlentities($service['OptionValue']) : $NA; + break; + case 'free': + echo $service['OptionValueEx'] ? nl2br(htmlentities($service['OptionValueEx'])) : $NA; + break; } - echo "\n</TD>\n"; - echo "</TR>\n\n"; - $i++; - } + $service = mysql_fetch_assoc($res); + } while ($service['ServiceName'] == $last); + $last = $service['ServiceName']; ?> - -<TR VALIGN=top BGCOLOR="<? echo $COLOR["ltpurple"]; ?>"> -<TD align=left> -<INPUT TYPE="button" VALUE=" Back " onClick="history.go(-1);"><BR> -</TD> -<TD align=right> -<SMALL> + </td> + </tr> +<?php +} while ($service); +?> +</table> +<small> NOTE: This site makes no claim that the above information is accurate.<BR> -</SMALL> -</TD> -</TR> - -</TABLE> -</FORM> - -<? +</small> +<?php commonFooter(); ?>