Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多变量的while循环中的PHP echo_Php_Mysql - Fatal编程技术网

多变量的while循环中的PHP echo

多变量的while循环中的PHP echo,php,mysql,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']; $n

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

}
$query1=mysql\u query(“从col2所在的表中选择*($aditya)”);
而($var1=mysql\u fetch\u数组($query1))
{
$var2=$var1['col1'];
$var3=$var1['col2'];
$var4=$var1['col3'];
$name=mysql_查询(“从表2中选择f_名称,其中f_id=$var2”);
$tname=mysql\u fetch\u数组($name);
回声“

“$var3”。“$var4”。”; }
问题很可能来自您的查询。 放置
echo$query1;退出
并在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
");

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

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

此外,你可能想考虑给你的变量更有意义的名字,因为你只会混淆你自己和其他程序员在你的项目上工作,如果你把它们命名为$VAR1,$VAR2等等,只是一个提示。

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

A.
$aditya
未正确定义。如果它是一个数组,那么您需要将它与
内爆相结合
如果没有,请确保其格式正确

预期的输出应该是这样的

 SELECT * FROM table  WHERE col2  IN ( 250, 220, 170 );
B.
$name
不是数组,因此
$name['f_name']
不起作用。您可以使用
$tname['f_name']


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

我认为你应该把它作为一个注释。@Martin这样做了,这是回应,但它是为相同id的两个diff属性回显单独的记录,我想将其连接起来。19,text1,119,text2,1我想要类似19,text1(1),text2(1)的东西,如果$aditya是数组,那么您应该像这样更改您的SQL查询,$query1=mysql_query(“从col2所在的表中选择*”(.infrade(“,”,$aditya)。”);在while循环中转储数组以查看它们包含的内容<代码>打印($var1)
@MuthuKumaran。。我是在一个单独的查询$aditya=introde(',',$ids_数组)中这样做的;