Tengo un problema con php y mysql
Me base en un ejemplo de un foro de PHP y funciono, sin embargo cuando intente adaptarlo a mi proyecto no me funciono.
Base de datos mysql:
//hijo de origenes
CREATE TABLE destinos (
id int unsigned not null auto_increment,
idem_n2 varchar(30),
primary key(id),
id_n2 int unsigned not null);
//Armenia-Bolivariano
insert into destinos values (240,'Bogota',220);
insert into destinos values (241,'Bucaramanga',220);
insert into destinos values (242,'Cali',220);
//padre de destino hijo de sucursales
CREATE TABLE origenes(
id int unsigned not null auto_increment,
idem_n varchar(30),
primary key(id),
idem_n2 int unsigned not null);
alter table origenes change idem_n2 id_n int unsigned not null;
insert into origenes values (220,'Armenia',201);
insert into origenes values (221,'Bogota Sur',201);
insert into origenes values (222,'Bogota',201);
//hijo de trans
CREATE TABLE sucursales(
id int unsigned NOT NULL auto_increment,
idem_n varchar(30),
PRIMARY KEY (id),
id_transporte int unsigned NOT NULL);
insert into sucursales values (201,'Bolivariano',200);
insert into sucursales values (202,'La Macarena',200);
CREATE TABLE tran (
id int unsigned NOT NULL auto_increment,
idem_n varchar(25),
primary key (id));
insert into tran values (1,'Aerolineas');
insert into tran values (200,'Flotas');
* El programa en PHP:
<html>
<body>
<?php
$servidor ="localhost";
$usuario ="root";
$clave ="casandra";
$basedatos ="probandoviatik";
if (!empty($_POST['enviado'])){
// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo "Recibido id_tabla_padre: ".$_POST['id_transporte']."<br>";
echo "Recibido id_tabla_hija: ".$_POST['id_sucursales']."<br>";
echo "Recibido id_tabla_padre2: ".$_POST['id_n']."<br>";
echo "Recibido id_tabla_hija2: ".$_POST['id_origenes'];
} else {
// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());
// Obtener el $id_padre del envío a sí mismo del formulario ...
$id_padre=$_POST['id_transporte'];
$id_padre2=$_POST['id_n'];
// Inicio Formulario .. PHP_SELF enviamos a sí mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
// Formar Selec "Padre".
echo "<select name=\"id_transporte\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";
$SQLconsulta_padre="SELECT * FROM tran";
$consulta_padre = mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());
While ($registro_padre=mysql_fetch_assoc($consulta_padre )){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_padre == $registro_padre['id']){
echo "<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['idem_sucursal']."</option>\n";
} else {
echo "<option value=\"".$registro_padre['id']."\">".$registro_padre['idem_n']."</option>\n";
}
}
echo "</select>\n\n";
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.
// Formar Select "Hijo"
echo "<select name=\"id_sucursales\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opción del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_padre)){
$SQLconsulta_hija="SELECT * FROM sucursales WHERE id_transporte='$id_padre'";
$consulta_hija = mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_hija) != 0){
While ($registro_hija=mysql_fetch_assoc($consulta_hija)) {
echo "<option value=\"".$registro_hija['id']."\">".$registro_hija['idem_n']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay registros para este Item </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un Item </option>";
}
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
//2
// Formar Selec "Padre2".
echo "<select name=\"id_sucursales\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";
$SQLconsulta_padre2="SELECT * FROM sucursales";
$consulta_padre2 = mysql_query($SQLconsulta_padre2,$conexion) or die(mysql_error());
While ($registro_padre2=mysql_fetch_assoc($consulta_padr e2)){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_padre2 == $registro_padre2['id']){
echo "<option value=\"".$registro_padre2['id']."\" selected>".$registro_padre2['idem_sucursales']."</option>\n";
} else {
echo "<option value=\"".$registro_padre2['id']."\">".$registro_padre2['idem_n']."</option>\n";
}
}
echo "</select>\n\n";
mysql_free_result($consulta_padre2); // Liberar memoria usada por consulta.
// Formar Select "Hijo2"
echo "<select name=\"id_origenes\">\n";
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opción del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_padre2)){
$SQLconsulta_hija2="SELECT * FROM origenes WHERE id_n='$id_padre2'";
$consulta_hija2 = mysql_query($SQLconsulta_hija2,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_hija2) != 0){
While ($registro_hija2=mysql_fetch_assoc($consulta_hija2 )){
echo "<option value=\"".$registro_hija2['id']."\">".$registro_hija2['idem_n']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay registros para este Item </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un Item </option>";
}
mysql_free_result($consulta_hija2); // Liberar memoria usada por consulta.
echo "</select>\n\n";
echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
echo "</form>\n";
}
?>
</body>
</html>
----> Se que es largo, sin embargo su ayuda seria genial.