Ver Mensaje Individual
  #4 (permalink)  
Antiguo 05/11/2004, 19:13
pentiumonce
 
Fecha de Ingreso: octubre-2004
Mensajes: 82
Antigüedad: 19 años, 6 meses
Puntos: 1
Tienen razon Cluster, hay va el codigo

La explicacion es la siguiente, tengo 3 tablas relacionales en donde la 1° es la principal, la 2° depende de la 1° y la 3° de la 2°, para ejemplificar tome los mismos campos, aunque aqui lo importante son las claves foraneas q conllevan a relacionar las tablas.

CREATE TABLE tabla_padre (
id tinyint(3) unsigned NOT NULL auto_increment,
item_texto varchar(255) NOT NULL default '',
PRIMARY KEY (id)
)type=innodb;


INSERT INTO tabla_padre VALUES('','MEXICO D.F.');
INSERT INTO tabla_padre VALUES('','EDO. MEXICO');

CREATE TABLE tabla_hija (
id tinyint(3) unsigned NOT NULL auto_increment,
id_padre tinyint(3) unsigned NOT NULL default '0',
item_texto varchar(255) NOT NULL default '',
PRIMARY KEY (id),
index(id_padre),
foreign key(id_padre) references tabla_padre(id)
on delete cascade on update cascade
)type=innodb;


INSERT INTO tabla_hija VALUES('','1','ALVARO OBREGON');
INSERT INTO tabla_hija VALUES('','1','AZCAPOTZALCO');
INSERT INTO tabla_hija VALUES('','1','BENITO JUAREZ');
INSERT INTO tabla_hija VALUES('','2','CHALCO');
INSERT INTO tabla_hija VALUES('','2','IXTAPALUCA');
INSERT INTO tabla_hija VALUES('','2','LOS REYES');

CREATE TABLE tabla_nieta (
id tinyint(3) unsigned NOT NULL auto_increment,
id_hija tinyint(3) unsigned NOT NULL default '0',
item_texto varchar(255) NOT NULL default '',
PRIMARY KEY (id),
index(id_hija),
foreign key(id_hija) references tabla_hija(id)
on delete cascade on update cascade
)type=innodb;


INSERT INTO tabla_nieta VALUES('','1','ALVARO 1');
INSERT INTO tabla_nieta VALUES('','1','ALVARO 2');
INSERT INTO tabla_nieta VALUES('','2','AZCAPOTZALCO 1');
INSERT INTO tabla_nieta VALUES('','2','AZCAPOTZALCO 2');
INSERT INTO tabla_nieta VALUES('','3','BENITO JUAREZ 1');
INSERT INTO tabla_nieta VALUES('','3','BENITO JUAREZ 2');
INSERT INTO tabla_nieta VALUES('','4','CHALCO 1');
INSERT INTO tabla_nieta VALUES('','4','CHALCO 2');
INSERT INTO tabla_nieta VALUES('','5','IXTAPALUCA 1');
INSERT INTO tabla_nieta VALUES('','5','IXTAPALUCA 2');
INSERT INTO tabla_nieta VALUES('','6','LOS REYES 1');
INSERT INTO tabla_nieta VALUES('','6','LOS REYES 2');


y el codigo php q implemente es este:

Código PHP:
   echo "<select name=\"id_nieta\" onChange='this.form.submit()'>\n"
   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo 
   
if (!empty($id_hija))
   {  
       
$SQLconsulta_nieta="SELECT * FROM tabla_nieta WHERE id_hija='$id_hija'"
       
$consulta_nieta mysql_query($SQLconsulta_nieta,$conexion) or die(mysql_error()); 
       if (
mysql_num_rows($consulta_nieta) != 0)
       { 
          While   (
$registro_nieta=mysql_fetch_assoc($consulta_nieta))  
            {
            if (
$id_nieta == $registro_nieta['id'])
               { 
                      echo 
"<option value=".$registro_nieta['id']." selected>".$registro_nieta['item_texto']."</option>\n"
            }
            else
            {       
             echo 
"<option value=\"".$registro_nieta['id']."\">".$registro_nieta['item_texto']."</option>\n"
            }
         } 
       } 
        else 
        { 
            echo 
"<option value=\"\"> No hay registros para este Item </option>"
        } 
    } 
    else 
    { 
        echo 
"<option value=\"\"> <-- Seleccione un Item  </option>"
    } 

Última edición por Cluster; 06/11/2004 a las 14:48