当我使用多项选择下拉列表从国家/地区表中选择国家/地区时,如何从国家/地区表中获取国家/地区列表?这是我的编码。
mysql表
CREATE TABLE `countries` (
`countryID` varchar(3) NOT NULL default '',
`countryName` varchar(52) NOT NULL default '',
`localName` varchar(45) NOT NULL,
`webCode` varchar(2) NOT NULL,
`region` varchar(26) NOT NULL,
`continent` enum('Asia','Europe','North America','Africa','Oceania','Antarctica','South America') NOT NULL,
`latitude` double NOT NULL default '0',
`longitude` double NOT NULL default '0',
`surfaceArea` float(10,2) NOT NULL default '0.00',
`population` int(11) NOT NULL default '0',
PRIMARY KEY (`countryID`),
UNIQUE KEY `webCode` (`webCode`),
UNIQUE KEY `countryName` (`countryName`),
KEY `region` (`region`),
KEY `continent` (`continent`),
KEY `surfaceArea` (`surfaceArea`),
KEY `population` (`population`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表结构states
:
CREATE TABLE `states` (
`stateID` smallint(5) unsigned NOT NULL auto_increment,
`stateName` varchar(50) NOT NULL default '',
`countryID` varchar(3) NOT NULL,
`latitude` double NOT NULL default '0',
`longitude` double NOT NULL default '0',
PRIMARY KEY (`stateID`),
KEY `stateName` (`stateName`),
KEY `countryID` (`countryID`),
KEY `unq` (`countryID`,`stateName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表的数据countries
(LIMIT 0,500)
INSERT INTO `countries` (`countryID`, `countryName`, `localName`, `webCode`, `region`, `continent`, `latitude`, `longitude`, `surfaceArea`, `population`) VALUES
('BRA','Brazil','Brasil','BR','South America','South America',-10,-55,8547403.00,170115000),
('CHN','China','Zhongquo','CN','Eastern Asia','Asia',35,105,9572900.00,1277558000),
('FRA','France','France','FR','Western Europe','Europe',47,2,551500.00,59225700),
('IND','India','Bharat/India','IN','Southern and Central Asia','Asia',28.47,77.03,3287263.00,1013662000),
('USA','USA','United States','US','North America','North America',38,-97,9363520.00,278357000);
COMMIT;
表的数据states
(LIMIT 0,500)
INSERT INTO `states` (`stateID`, `stateName`, `countryID`, `latitude`, `longitude`) VALUES
(5,'California','USA',37.42,-122.06),
(6,'Beijing','CHN',39.93,116.39),
(9,'Iowa','USA',43.03,-96.09),
(10,'New York','USA',40.76,-73.97),
(12,'... ....','CHN',32.06,118.78);
COMMIT;
国家下拉菜单
<? $Type_sql="SELECT countryName FROM countries ORDER by countryName ASC";
$Type_result=mysql_query($Type_sql);
while($Type_rows=mysql_fetch_array($Type_result)){
echo "<option value='";
echo $Type_rows['countryName'];
echo "'>";
echo $Type_rows['countryName'];
echo "</option>";
} ?>
</select>
状态下拉列表
<? $Type_sql="SELECT stateName FROM countries c, states s where c.countryID = s.countryID ORDER by stateName ASC";
$Type_result=mysql_query($Type_sql);
while($Type_rows=mysql_fetch_array($Type_result)){
echo "<option value='";
echo $Type_rows['stateName'];
echo "'>";
echo $Type_rows['stateName'];
echo "</option>";
} ?>
</select>