#!/usr/bin/perl print "Content-type: text/html\n\n"; use warnings; use CGI::Carp qw(fatalsToBrowser); use strict; my ($dbh, $sth, $stmt, $tempstate, $tempcity, %states, @data, @cities, $city, $x); &dbconnect; #connect to database subroutine $stmt = "SELECT city, state, country FROM sponsor ORDER BY country, state, city"; $sth = $dbh->prepare($stmt) or die "prepare: $stmt: $DBI::errstr"; $sth->execute() or die"execute: $stmt: $DBI::errstr"; while (@data = $sth->fetchrow_array()) { if ($data[1] ne $tempstate) { @cities = ""; push (@cities, $data[0]); $states{$data[1]} = [ @cities ]; $tempstate = $data[1]; $tempcity = $data[0]; } elsif ($data[0] ne $tempcity) { push (@cities, $data[0]); $states{$tempstate} = [ @cities ]; $tempcity = $data[0]; } } for my $state ( keys %states ) { print "$state:
"; for my $i (1..$#{ $states{$state} } ) { print "$i = $states{$state}[$i]
"; } } $sth->finish(); $dbh->disconnect();