Pues lo que ahorita se me ocurre del porque no te muestra los hijos de los siguientes matrimonios es que los apellidos no son iguales, es decir, probablemente no estan bien escritos, por ejemplo:
'Massot' == '
massot' o 'Mas
sot' == 'Masot'
Digo podrían ser errores de dedo, deberías checar eso (que los apellidos sean iguales), para resolver el primer caso deberías cambias este if:
Código PHP:
if ( $apellido_c[0] == $apellido_h[0] )
Por este otro:
Código PHP:
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
$mayus_c = strtr ( strtoupper ( $apellido_c[0] ), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");
$mayus_h = strtr ( strtoupper ( $apellido_h[0] ), "àáâãäåæçèéêëìíîïðñòóôõöøùüú", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ");
if ( $mayus_c == $mayus_h )
{
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>";
}
}
}
Para resolver el segundo caso, no veo otra, sino corregirlo a mano. Ah, y por cierto los empty que te había puesto hay que corregirlos poniendo un cierre de signo de admiración a su costado izquierdo es decir:
Código PHP:
!empty ( $variable )
Suerte