php + mysql (join?)

0 Cevap php

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.

0 Cevap