我试图回应一些结果 这里$ 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".")";
}
答案 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
是否甚至存在于第一位