PHP echo在一段时间内循环为多个变量

时间:2012-08-10 06:27:13

标签: php mysql

我试图回应一些结果 这里$ 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".")";

}

3 个答案:

答案 0 :(得分: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
");

答案 1 :(得分:0)

如果$ aditya确实是一个数组,那么就不可能像查询中那样使用它。 MySQL期望以逗号分隔的元素列表,因此您可以内嵌PHP数组并将其提供给查询:

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

除此之外,您可能还想考虑为变量提供更有意义的名称,因为如果您将其命名为$ var1,$ var2等,您只会混淆自己和其他从事项目工作的程序员。只是提示。

答案 2 :(得分:0)

这里可能有很多错误

一个。 $aditya未正确定义。如果它是一个数组,那么你需要将它与implode组合,如果noy确保其格式正确

预期输出应该是这样的

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

B中。 $name不是数组,因此$name['f_name']不起作用。您可以使用$tname['f_name']代替

℃。我认为您需要更新您的问题,并确保您拥有代码的确切错误,以及可以运行的许多内容,我们无法远程测试,例如。表名table是否甚至存在于第一位