Foros del Web » Programando para Internet » PHP »

A cada registro un echo distinto. TOTAL DE REGISTROS variable.

Estas en el tema de A cada registro un echo distinto. TOTAL DE REGISTROS variable. en el foro de PHP en Foros del Web. Espero poder explicarme. Tengo dos tablas. Una con todos los datos de la persona, y otra con su ID y su ID de matrimonio. Bien. ...
  #1 (permalink)  
Antiguo 27/09/2006, 10:48
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
A cada registro un echo distinto. TOTAL DE REGISTROS variable.

Espero poder explicarme.
Tengo dos tablas. Una con todos los datos de la persona, y otra con su ID y su ID de matrimonio. Bien. La consulta lo que hace es buscar todos los que tengan el ID, selecciona sus ID de matrimonio (ya que puede estar casada una o varias veces), y busca a sus conyugues en la tabla de datos.
Lo que no logro hacer es que cuando tiene mas de un matrimonio, al primero le ponga EN PRIMERAS NUPCIAS, al segundo SEGUNDAS NUPCIAS, y asi.
Mediante un Switch Case, no funciona ya que se fija la cantidad de registros que devuelve el SELECT, y dependiendo de ese numero les pone el echo. Es decir, si son 3 REGISTROS, a todos los conyugues les pone EN TERCERAS NUPCIAS.

Les paso el codigo a ver si alguien puede ayudarme.
MUCHAS GRACIAS.

Código PHP:
$query "select p.id, p.apellido 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)";

    
$conyugue mysql_query($query) or die (mysql_error());

$nupcias_num $conyugue

    
 if (
mysql_num_rows($conyugue) > 0){
    echo 
"<font class=Estilo1>Casado con: </font>";
    echo 
"</p>";
     
  while(
$row = @mysql_fetch_array($conyugue)){ 
    
$id $row['id'];
    
$apellido $row['apellido'];
    foreach (
$row as $id) {
 switch (
$nupcias_num) {
   case 
1:
       
$nupcias "<font class=Estilo1>En primeras nupcias: </font>";
       break;
   case 
2:
       
$nupcias "<font class=Estilo1>En segundas nupcias: </font>";
       break;
   case 
3:
       
$nupcias "<font class=Estilo1>En terceras nupcias: </font>";
       break;
}  

     echo 
"";
    
     echo 
$nupcias." <a class=links href=\"detail3.php?id=".$id."\">".$apellido."</a></br>"
    
     echo 
"</p>";
     
$nupcias_num ++;
  } 
}
} else { 
   echo 
"<font class=Estilo1>No se encontró cónyugue de esta persona.</font>"
   echo 
"</p>"
  #2 (permalink)  
Antiguo 28/09/2006, 10:03
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
Nadie sabe, o no se puede hacer? Es urgente. Si no es posible hacerlo como digo, contestenme eso y busco otra solución.
Muchas gracias!
  #3 (permalink)  
Antiguo 28/09/2006, 10:26
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
SI SE PUEDE, CHECA ESTE EJEMPLO HABER SI TE DA ALGUNAS LUCES:

<?php
$conyugue = array( 'Erik', 'Francisco', 'Ian' );

$num_conyugue = count ( $conyugue );

switch ( $num_conyugue )
{
case 1:
echo "<font class = 'Estilo1'>En primeras nupcias: ".$conyugue[0]."</font>";
break;
case 2:
echo "<font class = 'Estilo1'>En primeras nupcias: ".$conyugue[0]."</font><br/>";
echo "<font class = 'Estilo1'>En segundas nupcias: ".$conyugue[1]."</font>";
break;
case 3:
echo "<font class = 'Estilo1'>En primeras nupcias: ".$conyugue[0]."</font><br/>";
echo "<font class = 'Estilo1'>En segundas nupcias: ".$conyugue[1]."</font><br/>";
echo "<font class = 'Estilo1'>En terceras nupcias: ".$conyugue[2]."</font>";
break;
}
?>

CREO QUE ES SÓLO CUESTION DE QUE LO MODIFIQUES DE ACUERDO A TUS NECESIDADES. ESPERO HABERTE PODIDO AYUDAR EN ALGO. SUERTE
  #4 (permalink)  
Antiguo 28/09/2006, 10:45
Avatar de solecoza  
Fecha de Ingreso: julio-2006
Mensajes: 126
Antigüedad: 17 años, 9 meses
Puntos: 0
FENOMENAL!
Te agradezco muchisimo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:04.