Ajuda com esta função

  • Autor Autor roberts
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
R

roberts

Préstamo impago
Gamma
Programador
No recomendado
Hola amigos,

Me gustaría saber si me pueden dar una mano en esto:

Estoy creando un árbol genealógico familiar en PHP, lo que necesito es hacer que el hijo pueda ver hasta su tercera generación, ej. Padre, Abuelo, bisabuelo... Hasta ahora solo he podido hacer que pueda ver su padre con esta función:

En este ejemplo se imprimen tres resultados, El email del padre, y su nombre. Si no tiene padre, se imprime "No tiene padre"

PHP:
<?php 
$rs1=mysql_query("select * from users where active=1 and Username='$ref'");
if(mysql_num_rows($rs1)>0) {
$arr1=mysql_fetch_array($rs1);
echo "<a href=mailto:$arr1[7]>$arr1[1] (Username: $arr1[8])</a>";
}
else echo "No tiene padre";
?>

Espero que me puedan ayudar
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
La función tal como la planteas no es correcta de entrada. Sin saber la estructura de tu tabla, en todo caso el mensaje de "no tiene padre" correspondería a: no existe el usuario o no está activo.

Doy por hecho que en tu tabla al menos tienes estos campos: User_id, Username, Email, Padre_id

Una forma de conseguir rápida lo que buscas, aunque probablemente no sea la óptima, sería algo así (ojo que no he comprobado errores de sintaxis en el código por lo que podría haber algún pequeño error pues lo he escrito todo aquí directamente):

PHP:
<?

$result = mysql_query("SELECT * FROM users where active = 1 and Username='$ref'");
if(mysql_num_rows($result)>0)
{
    while($fila = mysql_fetch_array($result))
    {
          echo "<a href='mailto:".$fila['Email']."'>Usuario: ".$fila['Username']."</a>";
          $result2 = mysql_query("SELECT * FROM users where active = 1 and User_id= '".$fila['Padre_id']."'");
          if(mysql_num_rows($result2)>0)
          {
               while($fila2 = mysql_fetch_array($result2))
              {
               echo "Padre : <a href='mailto:".$fila2['Email']."'>Usuario: ".$fila2['Username']."</a>";
              }

              // aqui tercera itineracion para abuelo y dentro la cuarta para bisabuelo...



          }
          else
          {
              echo "No tiene padre";
          }


    }


}
else
{
    echo "Usuario no existe o no activo";
}






?>
 
Última edição:
Gracias droolo,

Me ha dado un error de syntax Parse error: syntax error, unexpected '{' justo aqui: (En negrita)

while($fila = mysql_fetch_array($result)
{

Lo probare a ver que tal
 
Lo había editado antes, de todas formas falta un ) al final de esa primera línea, probablemente haya más fallos de ese tipo en el código.
 
Hola droolo, le he hecho algunos arreglo y ha funcionado a la perfección 🙂 Muchisimas gracias hermano!!!
 
De nada! un placer poder ayudar.
 
Permitirme unos minutos y te preparo la función completa..

---------- Post agregado el 20-ago-2013 hora: 17:53 ----------

Aquí tienes la función completa, espero que te sirva:

PHP:
$ref = "UsernameHijo";
$result = mysql_query("SELECT * FROM users where active = 1 and Username='".$ref."'");
if(mysql_num_rows($result)>0)
{
    while($fila = mysql_fetch_array($result))
    {
		echo "<p>Usuario: <a href='mailto:".$fila['Email']."'>".$fila['Username']."</a></p>";
        $result2 = mysql_query("SELECT * FROM users where active = 1 and ref_by = '".$fila['ID']."'");
        if(mysql_num_rows($result2)>0)
        {
			while($fila2 = mysql_fetch_array($result2))
            {
				echo "<p>Padre : <a href='mailto:".$fila2['Email']."'>".$fila2['Username']."</a></p>";
				$result3 = mysql_query("SELECT * FROM users where active = 1 and ref_by = '".$fila2['ID']."'");
        		if(mysql_num_rows($result3)>0)
        		{
					while($fila3 = mysql_fetch_array($result3))
           			{
						echo "<p>Abuelo : <a href='mailto:".$fila3['Email']."'>".$fila3['Username']."</a></p>";
						
						$result4= mysql_query("SELECT * FROM users where active = 1 and ref_by = '".$fila3['ID']."'");
        				if(mysql_num_rows($result4)>0)
        				{
							while($fila4 = mysql_fetch_array($result4))
           					{
								echo "<p>Bisabuelo : <a href='mailto:".$fila4['Email']."'>".$fila4['Username']."</a></p>";	
							}
						}
						else
						{
							echo "<p>No tiene bisabuelo.</p>";
						}
					}
				}
				else
				{
					echo "<p>No tiene abuelo.</p>";
				}
			}
        }
        else
        {
			echo "<p>No tiene padre.</p>";
		}
    }
}
else
{
    echo "<p>Usuario no existe o no activo.</p>";
}
	
?>
 
Gracias man, en unos minutos lo pruebo y te cuento que tal!
 
ok! espero tu feedback
 
Me ha funcionado! Gracias de nuevo 🙂
 

Tópicos similares

GonzalezJ21
Respostas
4
Visitas
78
Daniel Muñoz
Daniel Muñoz
Maximus Decimus Meridius
Respostas
0
Visitas
35
Maximus Decimus Meridius
Maximus Decimus Meridius
T
Respostas
10
Visitas
155
Daniel Muñoz
Daniel Muñoz
Voltar
Topo