リンゴとオレンジを混ぜているのかもしれません -- $clist は csv の文字列です。$row2['$cat'] で何かをエコーすることができません。前もって感謝します
$cats = explode(",", $clist);
foreach($cats as $cat) {
$cat = trim($cat);
$q = "SELECT * FROM contacts WHERE id = '$cat' ";
$result = mysql_query($q, $link);
$num2=mysql_num_rows($result2);
$x = 0;
while($x < $num2) {
$row2 = mysql_fetch_array($result2);
echo $row2['$cat'];
$x++;
}
}