Código PHP:
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `dep`
--
CREATE TABLE `dep` (
`iddep` int(10) unsigned NOT NULL auto_increment,
`pais_idp` int(10) unsigned NOT NULL,
`departamento` varchar(25) default NULL,
PRIMARY KEY (`iddep`),
KEY `dep_FKIndex1` (`pais_idp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
--
-- Volcar la base de datos para la tabla `dep`
--
INSERT INTO `dep` (`iddep`, `pais_idp`, `departamento`) VALUES
(1, 1, 'Puno'),
(2, 1, 'arequipa'),
(3, 2, 'cordoba'),
(4, 2, 'San Luis');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `distrito`
--
CREATE TABLE `distrito` (
`dep_iddep` int(10) unsigned NOT NULL,
`distrito` varchar(12) NOT NULL,
KEY `distrito_FKIndex1` (`dep_iddep`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Volcar la base de datos para la tabla `distrito`
--
INSERT INTO `distrito` (`dep_iddep`, `distrito`) VALUES
(1, 'Juliaca'),
(1, 'Puno'),
(1, 'huancane'),
(1, 'azangaro'),
(3, 'santo tome'),
(3, 'santiago'),
(3, 'Chaco'),
(3, 'San Rafael');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `pais`
--
CREATE TABLE `pais` (
`idp` int(10) unsigned NOT NULL auto_increment,
`pais` varchar(25) default NULL,
PRIMARY KEY (`idp`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Volcar la base de datos para la tabla `pais`
--
INSERT INTO `pais` (`idp`, `pais`) VALUES
(1, 'peru'),
(2, 'argentina');
--
-- Filtros para las tablas descargadas (dump)
--
--
-- Filtros para la tabla `dep`
--
ALTER TABLE `dep`
ADD CONSTRAINT `dep_ibfk_1` FOREIGN KEY (`pais_idp`) REFERENCES `pais` (`idp`) ON DELETE NO ACTION ON UPDATE NO ACTION;
--
-- Filtros para la tabla `distrito`
--
ALTER TABLE `distrito`
ADD CONSTRAINT `distrito_ibfk_1` FOREIGN KEY (`dep_iddep`) REFERENCES `dep` (`iddep`) ON DELETE NO ACTION ON UPDATE NO ACTION;
Código PHP:
<?php include("mysql.php");
$db = new MySQL();
$consulta_pais = $db->consulta("SELECT * FROM pais");
echo '<html>';
echo '<form method="post" action="">';
echo '<select name="pais" onChange="submit()">';
if ($db->num_rows($consulta_pais)>0){
$pais=$_POST['pais'];
$departamentos=$_POST['departamentos'];
$distrito=$_POST['distrito'];
echo "<option value='$pais'>".$pais.'</option>"';
while ($resultado=$db->fetch_array($consulta_pais)){ echo '<option value= "'.$resultado['pais'].'">'.$resultado['pais'].'</option>';
}
}
echo '</select>';
echo '<br>';
$consulta_cod_pais = $db->consulta("SELECT idp FROM pais WHERE pais='$pais'");
$resultado_cod_pais=$db->fetch_array($consulta_cod_pais);
$cod_pais=$resultado_cod_pais['idp'];
$consulta_departamento = $db->consulta("SELECT * FROM dep where pais_idp='$cod_pais'");
echo '<select name="departamentos" onChange="submit()">';
if ($db->num_rows($consulta_departamento)>0){
echo "<option value= '$departamentos'>".$departamentos.'</option>';
while ($resultado=$db->fetch_array($consulta_departamento)){ echo '<option value= "'.$resultado['departamento'].'">'.$resultado['departamento'].'</option>';
}
}
echo '</select>';
echo '<br>';
$consulta_cod_departamento = $db->consulta("SELECT iddep FROM dep WHERE departamento='$departamentos'");
$resultado_cod_departamento=$db->fetch_array($consulta_cod_departamento);
$cod_departamento=$resultado_cod_departamento['iddep'];
$consulta_distrito = $db->consulta("SELECT * FROM distrito where dep_iddep='$cod_departamento'");
echo '<select name="distrito" onChange="submit()">';
if ($db->num_rows($consulta_distrito)>0){
echo "<option value= '$distrito'>".$distrito.'</option>';
while ($resultado=$db->fetch_array($consulta_distrito)){ echo '<option value= "'.$resultado['distrito'].'">'.$resultado['distrito'].'</option>';
}
}
echo '</select>';
echo '</html>';
echo '</form>';
?>
[PHP]
Ejemplo:
Primera seleccion:
Pais-------Departamento-----Distrito
Peru------------Puno-------Juliaca
Segunda seleccion:
Pais-------Departamento-----Distrito
Agentina------------Puno-------Juliaca
Si notas al seleccionar el segundo pais, sigue saliendo los datos de la primera seleccion, como hacer para que salga solo lo seleccionado.