PHP I MySQl baza danych

0

Hej,

A wiec tworze bazę danych w której chce połączyć dwie tabele przy pomocy trzeciej. Ta tabele wygląda mniej więcej tak
Paren ID |Child ID| ID. A wiec problem polega na tym że chce zablokować dodawanie połączeni w których Rodzic jest Dzieckiem Dziecka. Udało mi się to zablokować na pierwszym poziomie ale nie wiem jak mogę to zablokować jeśli NP. Dziecko trzecie generacji zostanie rodzicem rodzica z pierwszej generacji. Będę wdzięczny za jakiekolwiek podpowiedzi odniesione tego
problemu. Z góry dziękuje Bartek.

0

Problem rozwiązany

A to dwie funkcje które wykonują walidacje:

Ta sprawdza czy dziecka nie zostaje rodzicem rodzica.

function child_check($par,$chi,$exist){ 

$arr=array();    $result = mysql_query("SELECT * FROM `bind` WHERE `Child ID` = ".$par." LIMIT 0, 30 ");
while($row = mysql_fetch_array($result))
{ 
    array_push($arr,$row[1]) ; 

    if($row[1] == $par){ $exist=TRUE;}}
if ($exist==TRUE){
        echo "Parent can't be its childs child'1!";  exit ;} 
 
 else { 
foreach ($arr as $value)
  {
prent_check($value,$chi,$exist);}

  }} 

A ta na odwrut czyli czy rodzic nie zostaje deckiem dziecka.

 function prent_check($par,$chi,$exist){ 

$arr=array();    $result = mysql_query("SELECT * FROM `bind` WHERE `Child ID` = ".$par." LIMIT 0, 30 ");
while($row = mysql_fetch_array($result))
{ 
    array_push($arr,$row[0]) ; 

    if($row[0] == $chi){ $exist=TRUE;}}
if ($exist==TRUE){
        echo "Child can't be its parets parent!";  exit ;} 
 
 else { 
foreach ($arr as $value)
  {
prent_check($value,$chi,$exist);}

  }}

Moglem pomieszać nazwy ale jestem pewien że Wszystko działa w obydwie strony.
A jeśli nie to proszę o podpowiedzi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1