2012-08-10 47 views
-2

我试图呼应了一定的成效 这里$阿迪亚是一个包含多个值 和$ VAR3还包含多个值 而是一个数组,当我呼应它,它显示只有一个值PHP回声在while循环的多变量

请找出我在做什么错

$query1= mysql_query("SELECT * FROM table WHERE col2 in ($aditya)"); 

while($var1=mysql_fetch_array($query1)) 
{ 

$var2=$var1['col1']; 
$var3=$var1['col2']; 
$var4=$var1['col3']; 

$name=mysql_query("SELECT f_name FROM table2 WHERE f_id=$var2"); 
$tname=mysql_fetch_array($name); 



    echo "</br>"."</br>"."<a style='color:blue' href=something.php?f_id=$var2 target=_BLANK >".$name['f_name']."</a>"." "."$var3"." "."("."$var4".")"; 

} 
+0

如果$阿迪亚是数组,那么你应该改变你的SQL查询这个样子, $ QUERY1 =请求mysql_query(“SELECT * FROM表WHERE中(COL2” .implode(” ,',$ aditya)。“)”); – 2012-08-10 06:34:44

+0

转储while循环内的数组以查看它们包含的内容; '的print_r($ VAR1)' – Vishal 2012-08-10 06:34:58

+0

@MuthuKumaran ..我这样做,在一个单独的查询 $阿迪亚=破灭( '',$ ids_array); – 2012-08-10 06:44:59

回答

0

最有可能的问题来自于您的查询。 把echo $query1; exit;并尝试在phpmyadmin如果你有这样的。 看你从查询得到什么其他的方法是将:

echo $var1['col1'].", ".$var1['col2'].", ".$var1['col3']; 

在while()看到什么ü从查询得到。 这个问题不在肯定的回声里。

更新2

$query1 = (" 
    SELECT unique_ids, GROUP_CONCAT(whatuwant) 
    FROM table 
    WHERE col2 in ($aditya) 
    GROUP BY unique_ids 
"); 
+0

我认为你应该把它作为评论。 – Mageek 2012-08-10 06:32:17

+0

我会在一分钟内编辑它作为一个答案 – Martin 2012-08-10 06:33:41

+0

@马丁这样做,这是呼应,但它是相同的ID两个差异属性呼应单独的记录,我想连接这一点。 19,文本1,1 19,文本2,1 我想是19,文本1(1),文本2(1) – 2012-08-10 06:40:52

0

如果$阿迪蒂亚确实是一个数组,那么它不可能使用它,你是在您的查询的方式。 MySQL中期望的一个逗号分隔的元素列表,所以你可以在发生内爆PHP数组并把它喂到查询:

$query1= mysql_query("SELECT * FROM table WHERE col2 in (" . implode(',', $aditya) . ")"); 

除此之外,你可能要考虑给你的变量更有意义的名称,因为你只会混淆自己和其他编程人员在你的项目上工作,如果你把它们命名为$ var1,$ var2等。只是一个提示。

0

所以,很多事情可能是错在这里

A. $aditya没有正确定义。如果它的一个数组,那么你需要将它与implode结合,如果诺伊确认应该是其正确格式化

期望输出这样

SELECT * FROM table WHERE col2 IN (250, 220, 170); 

B. $name不是一个数组所以$name['f_name']是行不通的。您使用使用$tname['f_name']而不是

C.我认为您需要更新您的问题与您的代码的确切错误,因为许多事情可以运行,我们无法远程测试,例如。做一个表名table甚至存在摆在首位