-2

我试图在这里回显一些结果 $aditya 是一个包含多个值的数组,$var3 也包含多个值但是当我回显它时它只显示一个值

请弄清楚我做错了什么

$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".")";

}
4

3 回答 3

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
");
于 2012-08-10T06:31:42.163 回答
0

如果 $aditya 真的是一个数组,那么就不可能按照您在查询中的方式使用它。MySQL 需要一个逗号分隔的元素列表,因此您可以内爆 PHP 数组并将其提供给查询:

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

除此之外,您可能想考虑给变量起更有意义的名称,因为如果您将它们命名为 $var1、$var2 等,您只会让您自己和其他从事您项目的编码人员感到困惑。只是一个提示。

于 2012-08-10T06:38:24.357 回答
0

这里可能有很多事情是错误的

A.$aditya没有正确定义。如果它是一个数组,那么你需要将它与implodeif noy 结合起来,确保它的格式正确

预期输出应该是这样的

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

B.$name不是一个数组,所以$name['f_name']不会工作。你用 use$tname['f_name']代替

C. 我认为你需要用你的代码的确切错误来更新你的问题,因为有很多东西可以运行,我们无法远程测试,例如。表名是否一table开始就存在

于 2012-08-10T06:42:24.680 回答