Bueno pues el código queda de esta manera ¿no?
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 ) > 0 )
{
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 ) > 0 )
{
if ( mysql_num_rows( $conyugue ) == 1 ) //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 ) > 0 ) // 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
$apellido_c = explode ( " ", $apellido ); // obtenemos los apellidos del conyugue el que nos interesa es el paterno
$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 ) > 0 ) //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
$apellido_h = explode ( " ", $apellido );// obtenemos los apellidos del(la) hijo(a) el que nos interesa es el paterno
$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
if ( $apellido_c[0] == $apellido_h[0] )
{
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>";
?>
Te aconsejo que mejor utilices empty en lugar de $campo <> "". Ahora, la condicional:
$apellido_c[0] == $apellido_h[0]
Esto te servira siempre y cuando:
* La persona sea mujer, recuerda que los apellidos del hijo son apellidopaterno apellidomaterno y en la condicional estas comparando que el apellido paterno del conyugue es igual al apellido paterno del hijo, pero si la persona es hombre no funcionara. Debes de buscar la manera de obtener el sexo de la persona para así cambiar el condicional.
$apellido_c[0] == $apellido_h[1]
* Otra observación es que en los datos generales del conyugue sólo tienes los apellidos no el nombre, acaso ¿tienes dentro del campo apellidos el nombre?; de ser así entonces no te va a dar los resultados deseados la condicional ya que probablemente estas agarrando el nombre en lugar del apellido a menos que este campo comience por estos.
Suerte