Ver Mensaje Individual
  #18 (permalink)  
Antiguo 28/03/2006, 00:13
jose2003
 
Fecha de Ingreso: noviembre-2004
Mensajes: 35
Antigüedad: 19 años, 5 meses
Puntos: 1
Combox dinamico de 3 tablas

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"

?>