Belki bu şekilde daha mantıklı olacaktır.
MySQL "masa"
Kod:
id1 | id2
1 | 2
1 | 3
2 | 4
2 | 3
3 | 4
3 | 5
1->2, 1->3, id1 = 1, bu kimliği 2 ve 3 bağlanır WHERE
Ne yapmak istiyorum, bu özel durumda {[(3) olacağını, 2 ve 3 hangi kimlikleri 1 bağlı DEĞİLDİR çıktı ]} ve 5.
2->4(1 4 = OK bağlı DEĞİLDİR)2->3(1 3 = DEĞİL OK bağlanır)3->4(1 4 = OK bağlı DEĞİLDİR) ... ama o NOT be displayed twice, çünkü sadece 2 ve 3 4'e bağlı olmalı!3->5(1 5 = OK bağlı DEĞİLDİR)
I would ile gelebilir tek şey aşağıdaki OHO koduna benzer, ama eğer, sadece basit bir MySQL sorgu içindeki tüm bu yapmak istediğiniz mümkün (yani JOIN?):
$a = mysql_query("SELECT id2 FROM table WHERE id1 = 1");
while($b = mysql_fetch_assoc($a))
{
$c = mysql_query("SELECT id2 FROM table WHERE id1 = $b[id2]");
while($d = mysql_fetch_assoc($c))
{
$e = mysql_query("SELECT id2 FROM table WHERE id1 = 1 AND id2 = $d[id2]");
$f = mysql_fetch_assoc($e);
if(!$f['id2'])
{
echo $f['id2'];
}
}
}
2 ve 3 4'e bağlı hem çünkü yukarıdaki PHP kodu ile note: Bir sorun, iki kez çıkış 4 olur olduğunu.