Php 高位图表的动态查询

Php 高位图表的动态查询,php,mysql,highcharts,Php,Mysql,Highcharts,我用的是highcharts——堆积柱形图。我试图创建一个动态查询 $query = mysql_query("SELECT * FROM products WHERE productid IN ".$full); 这是查询,$full定义为: $que1 = mysql_query("SELECT productid from admin_levels WHERE level>1 AND userid=$UserID ORDER BY productid"); $op1=""; whi

我用的是highcharts——堆积柱形图。我试图创建一个动态查询

$query = mysql_query("SELECT * FROM products WHERE productid IN ".$full);
这是查询,$full定义为:

$que1 = mysql_query("SELECT productid from admin_levels WHERE level>1 AND userid=$UserID ORDER BY productid");
$op1="";
while($row1 = mysql_fetch_row($que1))
{
foreach($row1 as $cell1)
{
$op1.="'".$cell1."',";
}
}
$temp1=strlen($op1)-1;
$op1=substr($op1,0,$temp1);
$full = "( ".$op1." )";

您可以在单个查询中调用上述查询,如下所示:

$query = mysql_query("SELECT * FROM products WHERE productid IN (SELECT productid from admin_levels WHERE level>1 AND userid=$UserID ORDER BY productid)")  or  die(mysql_error()) ;

我建议您不要使用mysql语句,因为它们容易受到攻击。当您执行echo$full时,请尝试mysqli或PDO语句

;你看到了什么?或者只是回显$query;?'16','17','20','114','125' . 我也试着把它设为16,17,20114125,但不起作用。如果产品id为int,则无需引用它们。最后,不要在$full=.$op1中使用;只需将其保持为$full=$op1;,然后在最后一个查询中,从productid所在的products中选择*。$full..我们确实尝试过,但现在没有工作尝试过…我忘了在最后一行添加。我已经编辑了它。它应该可以工作了…你在查询中设置了变量$UserID了吗。您可以写入或删除错误并查找错误。检查更新的答案