Puedes hacerlo con AJAX, un poquito como así:
cadenaselect.php
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "****://***.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="es">
<title>cadena select</title>
</head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
background-color:#fff;
}
</style>
<script type="text/javascript">
var request = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
request = false;
}
}
@end @*/
if (!request && typeof XMLHttpRequest != 'undefined') {
request = new XMLHttpRequest();
}
function ajaxSwitch(pais) {
var url = "cadenaselect2.php?pais=" + escape(pais);
request.open("GET", url, true);
request.onreadystatechange = go;
request.send(null);
}
function go() {
if (request.readyState == 4) {
if (request.status == 200) {
var response = request.responseText;
document.getElementById("ciudad").innerHTML = response;
}
}
}
function init() {
document.getElementById('pais').onchange=function() {
ajaxSwitch(this.value);
}
}
window.onload=init;
</script>
<body>
<form method="post" action="#">
<label>país: <select id="pais">
<option></option>
<option>Inglaterra</option>
<option>Estados Unidos</option>
<option>Australia</option>
</select></label>
<label>ciudad: <select id="ciudad"></select></label>
</form>
</body>
</html>
cadenaselect2.php
Código PHP:
<?php
function hazLo($pais) {
switch ($pais) {
case "Inglaterra":
return array('Londres','Manchester','Birmingham','Liverpool','Leeds');
break;
case "Estados Unidos":
return array('Washington DC','Nueva York','Los Angeles', 'Chicago');
break;
case "Australia":
return array('Canberra','Melbourne','Sydney', 'Brisbane');
break;
}
}
$pais=@$_GET['pais'];
$ciudades=hazLo($pais);
foreach ($ciudades as $ciudad) {
echo "<option>$ciudad</option>\n";
}
?>
Solo hay que intercambiar el select 'ciudad' con tu query MySql y el función 'switch' por otra query MySql.
Ejemplo: bonrouge.com/demos/cadenaselect.php