Ver Mensaje Individual
  #8 (permalink)  
Antiguo 16/10/2006, 09:00
Avatar de Erikfrancisco
Erikfrancisco
 
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Sólo una pregunta, en tu código:

Código PHP:
<?php
//persona 
   
$query4"SELECT distinct * FROM datos WHERE ( id = $id )";
   
$persona mysql_query$query4 ) or die ( mysql_error() );
//conyugue 
   
$query "SELECT * FROM datos d INNER JOIN matrimonios m on (d.id=m.id) WHERE m.mrin IN(SELECT mrin FROM matrimonios WHERE id=$id AND mrin<>0) AND d.id<>$id";
   
$conyugue mysql_query$query ) or die ( mysql_error() );
//hijos 
   
$query2 "SELECT distinct * FROM datos d INNER JOIN matrimonios m ON d.id=m.id WHERE mrinpadres IN(SELECT mrin FROM matrimonios WHERE id=$id AND mrin<>0) AND d.id<>$id";
   
$hijos mysql_query$query2 ) or die ( mysql_error() );

echo 
"<table class=\"tabla\">";
echo 
"<tr><td bgcolor=\"#d1d0df\">"

if ( 
mysql_num_rows $persona ) > )
{
   echo 
"<font class=\"Estilo1\">Persona seleccionada: </font>"
    
   
$row mysql_fetch_array$persona );

   
// datos generales de la persona
   
$name $row['apellido']; // nombre de la persona
   
$fena $row['fena']; // fecha de nacimiento
   
$luna $row['luna']; // lugar de nacimiento
   
$femu $row['femu']; // fecha de muerte
   
$lumu $row['lumu']; // lugar de muerte

   
if ( empty( $name ) )
   {
      echo 
"<font class=\"Estilo1\">".$name."</br></font>";
   } 
   if ( empty( 
$fena ) )
   {
      echo 
"<font class=\"Estilo2\">Nacido el ".$fena." en ".$luna."</br></font>";
   } 
   if ( empty( 
$femu ) )
   {
      echo 
"<font class=\"Estilo2\">Fallecido el ".$femu." en ".$lumu."</br></font>";
   }
}
else
{  
   echo 
"<font class=\"Estilo1\">No se encontró información de esta persona.</font><p>";
   exit; 
// no mostramos la tabla de sus conyugues e hijos
}

echo 
"</td></tr>";
echo 
"</br>";
   
//fin persona
//comienzo tabla conyugues

echo "<table class=\"tabla\">";
echo 
"<tr><td bgcolor=\"#D7D6E0\">";

if ( 
mysql_num_rows$conyugue ) > )
{
   if ( 
mysql_num_rows$conyugue ) == //un solo matrimonio
   
{
      
// datos generales de conyugue
      
$id $row['id']; // id de conyugue
      
$apellido $row['apellido']; // apellido de conyugue
      
$fena $row['fena']; // fecha de nacimiento de conyugue
      
$luna $row['luna']; // lugar de nacimiento de conyugue
      
$femu $row['femu']; // fecha de muerte de conyugue
      
$lumu $row['lumu']; // lugar de muerte de conyugue
     
      
echo "<font class=\"Estilo1\">Casado con: </font>"
      echo 
"<a class=\"links\" href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";

      if ( empty( 
$fena ) )
      {
         echo 
"<font class=\"Estilo2\">Nacido el ".$fena." en ".$luna."</br></font>"
      }
      if ( empty( 
$femu ) )
      {
         echo 
"<font class=\"Estilo2\">Fallecido el ".$femu." en ".$lumu."</br></font>";
      }
      
      if ( 
mysql_num_rows$hijos ) > // hijos del matrimonio
      
{
         echo 
"<font class=\"Estilo1\">Hijos: </font><p>";
         while ( 
$row mysql_fetch_array $hijos ) )
         {
            
$id $row['id']; // id hijo
            
$apellido $row['apellido']; // apellidos hijo
            
$fena $row['fena']; // fecha de nacimiento hijo
            
$luna $row['luna']; // lugar de nacimiento hijo
            
$femu $row['femu']; // fecha de muerte hijo
            
$lumu $row['lumu']; // lugar de muerte hijo
            
echo "<a class=\"links\" href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";

            if ( empty( 
$fena ) )
            {
               echo 
"<font class=\"Estilo2\">Nacido el: ".$fena." en ".$luna."</br></font>";
            }
            if ( empty( 
$femu ) )
            {
               echo 
"<font class=\"Estilo2\">Fallecido el: ".$femu." en ".$lumu."</br></font>";
            }
         }
      }
      else
      {
         echo 
"No se encontraron hijos para esta matrimonio";
      }
   }
   else
   {
      
$numero count$conyugue ); // MUCHOS MATRIMONIOS
      
$i "1"// contador de matrimonio
      
echo "<font class=\"Estilo1\">Casado con: </font><p>";
      while ( 
$row mysql_fetch_array $conyugue ) )
      {
         
$id $row['id']; // id de conyugue
         
$apellido $row['apellido']; // apellido de conyugue
         
$fena $row['fena']; // fecha de nacimiento de conyugue
         
$luna $row['luna']; // lugar de nacimiento de conyugue
         
$femu $row['femu']; // fecha de muerte de conyugue
         
$lumu $row['lumu']; // lugar de muerte de conyugue
      
         
echo "<font class=\"Estilo1\">Matrimonio número ".$i.": </br></font>";
         echo 
"<a class=\"links\" href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";

         if ( empty( 
$fena ) )
         {
            echo 
"<font class=\"Estilo2\">Nacido el ".$fena." en ".$luna."</br></font>";
         } 
         if ( empty( 
$femu ) )
         {
            echo 
"<font class=\"Estilo2\">Fallecido el ".$femu." en ".$lumu."</br></font><p>";
         }

         
$i++; 
         echo 
"<p>"

         if ( 
mysql_num_rows$hijos ) > //hijos de cada matrimonio
         
{
            echo 
"<font class=Estilo1>Hijos: </font><p>"
  
            while ( 
$row2 mysql_fetch_array$hijos ) )
            {
               
$id2 $row['id']; // id hijo
               
$apellido2 $row['apellido']; // apellidos hijo
               
$fena2 $row['fena']; // fecha de nacimiento hijo
               
$luna2 $row['luna']; // lugar de nacimiento hijo
               
$femu2 $row['femu']; // fecha de muerte hijo
               
$lumu2 $row['lumu']; // lugar de muerte hijo

               
echo "<a class=\"links\" href=\"detalle.php?id=".$id."\">".$apellido2."</a></br>";

               if ( empty( 
$fena ) )
               {
                  echo 
"<font class=\"Estilo2\">Nacido el: ".$fena2." en ".$luna2."</br></font>";
               } 
               if ( empty( 
$femu ) )
               {
                  echo 
"<font class=\"Estilo2\">Fallecido el: ".$femu2." en ".$lumu2."</br></font>";
               }
            }

            echo 
"<p>";
         }
      }
   }
}
else
{
   echo 
"<font class=\"Estilo1\">No se encontró cónyugue de esta persona.</font><p>";
}

echo 
"</td></tr><p></table></br>";
echo 
"<font class=\"Estilo1\">Para buscar otro apellido cliqueá aquí</font></br><a class=\"links\" href=\"buscar.php\">Nueva búsqueda</a></br>";
?>
¿Donde estas colocando la comparacion del padre con el hijo?, es decir, antes de hacer el bucle:

while ( $row = mysql_fetch_array( $hijos ) )

deverías de poner un condicional donde le digas que imprima los hijos que correspondan con el apellido paterno del conyugue que estas imprimiendo. Algo parecido a esto:

Código PHP:
// suponiendo que los apellidos solo tienen dos palabras
$apellidos_conyugue explode " "$apellido );
$apellidos_hijos exoplode " "$apellido2 );
if (  
$apellidos_conyugue[0] == $apellidos_hijos[0] )
{
   
// aquí adentro pones todo el código del while

Te puse entre comentarios que esto te funciona siempre y cuando el conyugue tenga los apellidos separados por un sólo espacio, ejemplo:

Torres Zavala // el apellido paterno a comparar será Torres

Pero si el apellido contiene más espacios no te va a funcionar, mira el sig. ejemplo:

De la Torre Gutierres

El apellido paterno contiene varios espacios (De la Torre) y en el if va intentar comparar sólo (De). Así que lo que te recomendaría para no tener estos problemas es que guardes los apellidos en campos separados algo así como apellidopaterno, apellidomaterno.

Bueno espero haberme dado a entender y esto te sirva por lo menos para darte una idea. Suerte