Doy gracias de ante mano a las personas que usen este codigo y pongan de referencia a mi persona por ser el creador del codigo...
Omar Yony Ramos Rojas para servirles....
__________________________________________________ _______________
BASE DE DATOS "combo" esta en Mysql
__________________________________________________ _______________
Código:
__________________________________________________ _______________-- phpMyAdmin SQL Dump -- version 2.10.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 13-04-2008 a las 07:58:32 -- Versión del servidor: 5.0.45 -- Versión de PHP: 5.2.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de datos: `combo` -- -- -------------------------------------------------------- -- -- 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;
CODIGO DE CONEXION DE LA BASE DE DATOS ARCHIVO "Mysql.php"
_______________________________________ __________________________
Código PHP:
<?php
class MySQL{
public $cont=0;
private $conexion;
private $total_consultas;
public function MySQL(){
if(!isset($this->conexion)){
$this->conexion = (mysql_connect("localhost","root","")) or die(mysql_error());
mysql_select_db("combo",$this->conexion) or die(mysql_error());
}
}
public function consulta($consulta){
$this->total_consultas++;
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado){
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}
public function fetch_array($consulta){
return mysql_fetch_array($consulta);
}
public function num_rows($consulta){
return mysql_num_rows($consulta);
}
public function getTotalConsultas(){
return $this->total_consultas;
}
}
?>
CODIGO DEL COMBOBOX DINAMICO EN ESTE CASO SE USO 3 PERO COMO PORDRAN VER SE PUEDEN AUMENTAR CUANTAS QUIERAN DEPENDIENDO DE LOS REQUERIMIENTOS EL ARCHIVO "combobox.php"
__________________________________________________ ______________
Código PHP:
<?php include("mysql.php");
$db = new MySQL();
$consulta_pais = $db->consulta("SELECT * FROM pais");
echo '<html>';
echo '<form method="post" action="combobox.php">';
$pais=$_POST['pais'];
$departamentos=$_POST['departamentos'];
$distrito=$_POST['distrito'];
echo '<select name="pais" onChange="submit()" style="position:absolute;left:14px;top:5px;width:186px;font-family:Times New Roman;font-size:16px;z-index:0">';
if ($db->num_rows($consulta_pais)>0){
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()" style="position:absolute;left:14px;top:35px;width:186px;font-family:Times New Roman;font-size:16px;z-index:1">';
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()"style="position:absolute;left:14px;top:65px;width:186px;font-family:Times New Roman;font-size:16px;z-index:2">';
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>';
?>