2013-01-15 114 views
-2

也许我在混合苹果和桔子 - $ clist是一个带有csv的字符串。我无法获得$ row2 ['$ cat']来回应任何内容。在此先感谢while fore循环内的循环

$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++; 
    } 
} 
+1

删除引号。 '$ row2 [$ cat]'否则,单引号会导致字面解释而不是变量插值。 –

+0

另外,第一次调用'mysql_num_rows()'应该是资源'$ result',而不是'$ result2'。 –

+0

@MichaelBerkowski:你说“而不是”,除非没有引号,否则没有插值,因为没有字符串。 –

回答

2

从Michael Berkowski的评论:删除报价。 $row2[$cat]

+2

顶部尊重张贴的答案作为答案_and_没有采取代表信用这样做 –

0

而不是为您的数组中的每个值查询,为什么不做一个单一的查询?

$cats = array('ginger','tabby','somthing'); 
$sql = "SELECT * FROM contacts WHERE id IN(\"".implode('", "',$cats)."\")"; 

//SELECT * FROM contacts WHERE id IN("ginger", "tabby", "somthing")