Update of /cvsroot/fink/web/pdb
In directory sc8-pr-cvs1:/tmp/cvs-serv16066

Added Files:
        compare.php 
Log Message:
Page for tree comparisons. Useful for seeing whats new in a given release


--- NEW FILE: compare.php ---
<?
$title = "Package Database";
$cvs_author = '$Author: benh57 $';
$cvs_date = '$Date: 2002/12/26 00:05:07 $';

include "header.inc";
include "releases.inc";
?>

  <hr>
<h3>Compare Trees</h3>
This search compares package names in two trees. 
It does not take versions into account.<br>

<form action="compare.php" method="GET">

<?PHP
if(!isset($tree1))
  $tree1 = 'current-unstable';
if(!isset($tree2))
  $tree2 = 'current-stable';
if(!isset($cmp))
  $cmp = 0;
if(!isset($splitoffs))
  $splitoffs = 0;

$q = "SELECT * FROM release";
$rs = mysql_query($q, $dbh);
if (!$rs) {
  print "<p><b>error during query ".$q.':</b> '.mysql_error().'</p>';
} else {
  while ($row = mysql_fetch_array($rs)) { 
    $menu = $menu . '<option value="'. $row['name']. '" '.
                (strcmp($row['name'], $tree1) ? '>' : 'selected>').
                $row['name'];
    $menu2 = $menu2 . '<option value="'. $row['name']. '" '.
                (strcmp($row['name'], $tree2) ? '>' : 'selected>').
                $row['name'];
        }
                
  print "Show packages in:<SELECT name = tree1>" . $menu . '</SELECT>';
  print 'that <SELECT name = cmp>'.
                '<option value=1 '. ($cmp ? 'selected>' : '>'). 'are'.
                '<option value=0 '. ($cmp ? '>' : 'selected>'). 'are not</SELECT>'; 
  print 'in:<SELECT name = tree2>' . $menu2 . '</SELECT>';
  print "<input type=checkbox name=\"splitoffs\" ".
                ($splitoffs ? 'checked>' : '>').
                "Include Splitoffs<br>";
?>  
<input type="submit" value="Search">
</form>
<?PHP
}
$q = "SELECT * FROM package ".
         "WHERE release LIKE \"$tree1\" ".
         ($splitoffs ? '' : 'AND parentname IS NULL ').
         "ORDER BY name ASC";
$rs = mysql_query($q, $dbh);
if (!$rs) {
  print "<p><b>error during query ".$q.':</b> '.mysql_error().'</p>';
} else {
  $count = mysql_num_rows($rs);

  print '<p>'.$count." Packages Found in $tree1</p>";
  $hitcount = 0;

  $pkglist = $pkglist . '<ul>';  
  while ($row = mysql_fetch_array($rs)) {
        $q2 = "SELECT name FROM package ".
      "WHERE release LIKE \"$tree2\" AND name=\"" . $row['name'] . '"'; 
        $rs2 = mysql_query($q2, $dbh);
        if (!$rs2) {
          print "<p><b>error during query ".$q2.':</b> '.mysql_error().'</p>';
        } else {
                $count = mysql_num_rows($rs2);
                $hit = 0;
                if($cmp == 0) {
                        # are NOT - count will be 0
                        if($count == 0) $hit = 1;
                } else {
                        # are - count > 0
                        if($count > 0) $hit = 1;
                }
                
                if($hit)
                {
                         $desc = " - ".$row[descshort];
                        if (substr($desc,3,1) == "[" || substr($desc,3,1) == "<")
                          $desc = "";
                        $pkglist = $pkglist . '<li><a 
href="package.php/'.$row[name].'">'.$row[name].'</a> '.
                          $row[version].'-'.$row[revision].$desc . "</li>\n";
                          
                        $hitcount++;                    
                }
        } 
  }
  $pkglist = $pkglist . '</ul>';
  print "Found $hitcount Packages in $tree1 that ". ($cmp ? 'are' : 'are not') .
                " in $tree2<p><ul> $pkglist";
?>


<?
}
?>

<?
include "footer.inc";
?>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to