hola a todos, desde hace un tiempo estoy aprendiendo php y se nota que me falta mucho por que trate de hacer el combox de tres tablas se que el error esta en el If de formar hija.
quien me puede decir
Código PHP:
<?
// datos de conexion a la BD.
$servidor ="localhost"; // host
$usuario ="";
$clave ="";
$basedatos =""; // Indicar una Base de datos.
// 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 envio a si mismo del formulario ..
$id_padre=$_POST['id_pais'];
$id_hija=$_POST['id_provincia'];
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
// Formar Selec "Padre".
echo "<select name=\"id_pais\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";
$SQLconsulta_padre="SELECT * FROM pais";
$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_pais']){
echo "<option value=\"".$registro_padre['id_pais']."\" selected>".$registro_padre['pais']."</option>\n";
} else {
echo "<option value=\"".$registro_padre['id_pais']."\">".$registro_padre['pais']."</option>\n";
}
}
echo "</select>\n\n";
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.
// Formar Select "Hija"
echo "<select name=\"id_provicia\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_padre)){
$SQLconsulta_hija="SELECT * FROM provincia WHERE id_pais='$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 ..
While ($registro_hija=mysql_fetch_assoc($consulta_hija)){
// se que este IF es el error quien me puede ayudar
if ($id_hija == $registro_hija['id_provincia']){ echo "<option value=\"".$registro_hija['id_provincia']."\" selected>".$registro_hija['provincia']."</option>\n";
} else {
echo "<option value=\"".$registro_hija['id_provincia']."\">".$registro_hija['provincia']."</option>\n";
}
}
}
echo "</select>\n\n";
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
// Formar Select "Hijo"
echo "<select name=\"id_localidad\" onChange=\"this.form.submit()\">\n";
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_hija)){
$SQLconsulta_hijo="SELECT * FROM localidad WHERE id_provincia='$id_hija'";
$consulta_hijo = mysql_query($SQLconsulta_hijo,$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_hijo) != 0){
While ($registro_hijo=mysql_fetch_assoc($consulta_hijo)){
echo "<option value=\"".$registro_hijo['id_localidad']."\">".$registro_hijo['localidad']."</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_hijo); // Liberar memoria usada por consulta.
echo "</select>\n\n";
echo "</form>\n";
?>