Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/10/2006, 23:01
Avatar de solecoza
solecoza
 
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
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) > ){ //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: