Hola.
Esto no es muy fácil de leer, pero intentaré explicarlo para alivianarlo.
Tengo 3 tablas: datos, padres y matrimonios.
Con ellas, hago unas consultas que me permiten saber todo sobre alguien: sus datos, sus hijos, sus padres, y cuantas veces se casó, etc.
Mi problema es: Con lo que pego acá abajo logro que me salga bien la cantidad de matrimonios, y sus respectivos conyugues.Dentro de cada matrimonio yo quiero listar los respectivos hijos. Mi problema es: tal como está este código lo que me sale es:
Persona: SOLEDAD GARCIA
Casado con:
Primer matrimonio: PEPE GONZALEZ
Hijos: JUAN
JOSE
MARIA
Segundo matrimonio: JORGE PEREZ
Hijos:
El tema es: Juan es hijo del primer matrimonio, y Jose y Maria del segundo.
¿Se entiende?
Mas abajo pongo las consultas.
GRACIAS AL QUE PUEDA AYUDARME.
Código PHP:
if (mysql_num_rows($conyugue) > 0){
if (mysql_num_rows($conyugue) == 1){ //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'];
$matrimonio = $row['mrin'];
$padres = $row['mrinpadres'];
$fena = $row['fena'];
$luna = $row['luna'];
$femu = $row['femu'];
$lumu = $row['lumu'];
echo "<a class=links href=\"detalle.php?id=".$id."&matrimonio=".$matrimonio."&padres=".$padres."\">".$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
} // SI TIENEN HIJOS
}//fin UN MATRIMONIO
else{ //muchos matrimonios
$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'];
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
} else {
echo "<font class=Estilo1>No se encontró cónyugue de esta persona.</font>";
echo "</p>";
Código PHP:
//persona
$query4= "SELECT distinct * FROM datos WHERE (id=$id)";
//conyugue
$query="select distinct * from datos p inner join matrimonios m on p.id=m.id where (m.id<>$id) AND m.mrin IN(select mrin from matrimonios where id=$id and mrin<>0)";
//hijos
$query2="SELECT distinct * FROM datos p inner join padres pa on p.id=pa.id WHERE (mrinpadres IN (SELECT mrin FROM matrimonios where id=$id)) AND (mrinpadres <>0)";
Otra cosita: Como se pone un echo de un tab en php?