Jika saya mengerti dengan benar, ini akan melakukan apa yang Anda butuhkan:
$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
// Do your outputting here.
}
Sunting
Sesuai permintaan Anda, saya akan melanjutkan dan menjelaskan kueri tersebut. Bagian yang mungkin membingungkan Anda adalah subquery ini:
(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))
IF EXISTS
memberitahu MySQL untuk mengembalikan TRUE atau FALSE jika bagian yang mengikutinya 'ada' (berisi hasil). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1
cukup beri tahu MySQL untuk menemukan baris di user_specialty
dimana s.id = us.sid
(ID khusus cocok) dan us.uid = '$id'
(ID adalah milik pengguna).