अगर मैं सही ढंग से समझ गया हूं, तो आपको वह करना चाहिए जो आपको चाहिए:
$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.
}
संपादित करें
आपके अनुरोध के अनुसार, मैं आगे बढ़ूंगा और प्रश्न की व्याख्या करूंगा। वह हिस्सा जो शायद आपको भ्रमित कर रहा है वह यह सबक्वेरी है:
(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))
IF EXISTS
MySQL को या तो TRUE या FALSE वापस करने के लिए कहता है यदि इसके तुरंत बाद वाला भाग 'मौजूद' है (इसमें एक परिणाम है)। SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1
बस MySQL को user_specialty
में एक पंक्ति खोजने के लिए कहता है जहां s.id = us.sid
(विशेषता आईडी मेल खाता है) और us.uid = '$id'
(आईडी उपयोगकर्ता का है)।