Bueno, estoy segura de que tu código es buenisimo pero a mí no me anda....nunca entendí ni entenderé los FOREACH!
Voy a pastear mi codigo completo, y un print de la pantalla al ejecutarlo para que entiendan mejor todo.
CAMBIE A DOS TABLAS. Una con los datos generales, y otra con ID, MRIN(id de matrimonio vendría a ser) y MRINPADRES (sería id de matrimonio de los padres).
Si algun iluminado entiende como separar los hijos segun sus papás....le mando un regalo!!!!!!!!!!!!!!!!
(Como verán en la imagen, el ultimo hijo que lista en matrimonio 1, es en realidad hijo del matrimonio 2).
Consultas: (el $id lo recibo por un form de busqueda)
Código PHP:
//persona
$query4= "SELECT distinct * FROM datos WHERE (id=$id)";
//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";
//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";
$conyugue = mysql_query($query) or die (mysql_error());
$persona = mysql_query($query4) or die (mysql_error());
$hijos = mysql_query($query2) or die (mysql_error());
Código: Código PHP:
echo "<table class=tabla>";
echo "<tr><td bgcolor=#d1d0df>";
if (mysql_num_rows($persona) > 0){
echo "<font class=Estilo1>Persona seleccionada: </font>";
if($row = mysql_fetch_array($persona)){
$name = $row['apellido'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
if ($name<>""){
echo "<font class=Estilo1>".$name."</br></font>";
}
if ($fena<>""){
echo "<font class=Estilo2>Nacido el ".$fena." en ".$luna."</br></font>";
}
if ($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>";
echo "</p>";
}
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){
while($row = mysql_fetch_array($conyugue)){ //un solo matrimonio
$id = $row['id'];
$apellido = $row['apellido'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
echo "<font class=Estilo1>Casado con: </font>";
echo "<a class=links href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";
if ($fena<>""){
echo "<font class=Estilo2>Nacido el ".$fena." en ".$luna."</br></font>";
}
if ($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>";
echo "</p>";
while($row = mysql_fetch_array($hijos)){
$id = $row['id'];
$apellido = $row['apellido'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
echo "<a class=links href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";
if ($fena<>""){
echo "<font class=Estilo2>Nacido el: ".$fena." en ".$luna."</br></font>";
}
if ($femu<>""){
echo "<font class=Estilo2>Fallecido el: ".$femu." en ".$lumu."</br></font>";
}
} //mientras haya hijos
}else{echo "No se encontraron hijos para esta matrimonio";} // SI TIENEN HIJOS
}//fin UN MATRIMONIO
$numero=count($conyugue);
//MUCHOS MATRIMONIOS
}else{
$i = "1";
echo "<font class=Estilo1>Casado con: </font>";
echo "</p>";
while($row = mysql_fetch_array($conyugue)){
$id = $row['id'];
$apellido = $row['apellido'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
$mrin = $row['mrin'];
echo "<font class=Estilo1>Matrimonio número ".$i.": </br></font>";
echo "<a class=links href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";
if ($fena<>""){
echo "<font class=Estilo2>Nacido el ".$fena." en ".$luna."</br></font>";
}
if ($femu<>""){
echo "<font class=Estilo2>Fallecido el ".$femu." en ".$lumu."</br></font>";
echo "</p>";
}$i++;
echo "</p>";
if (mysql_num_rows($hijos) > 0 ){ //hijos de cada matrimonio
echo "<font class=Estilo1>Hijos: </font>";
echo "</p>";
while($row = mysql_fetch_array($hijos) ){
$id = $row['id'];
$apellido = $row['apellido'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
echo "<a class=links href=\"detalle.php?id=".$id."\">".$apellido."</a></br>";
if ($fena<>""){
echo "<font class=Estilo2>Nacido el: ".$fena." en ".$luna."</br></font>";
}
if ($femu<>""){
echo "<font class=Estilo2>Fallecido el: ".$femu." en ".$lumu."</br></font>";
}
}
//para cada hijo
echo "</p>";
} //si tienen hijos
} //fin mientras haya matrimonios
} //fin para el que tenga muchos matrimonios
} //fin "si esta casado"
else {
echo "<font class=Estilo1>No se encontró cónyugue de esta persona.</font>";
echo "</p>";
}
echo "</td></tr>";
echo "</p>";
echo "</table>";
echo "</br>";
echo "<font class=Estilo1>Para buscar otro apellido cliqueá aquí</font></br><a class=links href=buscar.php>Nueva búsqueda</a></br>";
Salida de datos con este código: