2017-03-09 68 views
-1

这个select语句在MySQL中完美地工作,但是当我尝试在我的wordpress PHP中使用它时,它不起作用。我认为这个问题是这样的(在网络上找到):MySQL语句在wordpress中不起作用PHP

我想你只能传递一个语句$ wpdb-> get_results(),所以你需要用实际值替换您设置的变量。在SELECT语句中分配变量应该没问题,你可以提前设置它们

但我不知道如何改变它,所以它的工作原理。谁能帮我?

SET @maxp:=10; SET @point:[email protected]; SET @prev:=''; 
SELECT medlemsnr,navn,SUM(point) AS score 
FROM (SELECT IF ([email protected], @point:[email protected], @point:[email protected]) AS point,@prev:=art,navn,medlemsnr,art,maxvaegt 
FROM (SELECT medlemsnr,navn,art,MAX(vægt) AS maxvaegt FROM ct_storfanger_indberetninger WHERE YEAR(dato)=2017 GROUP BY medlemsnr,navn,art ORDER BY art,maxvaegt DESC) l) s 
WHERE point>0 GROUP BY medlemsnr,navn ORDER BY score DESC 

我试过这个在我的PHP,但它失败。 $ samletstilling = $ wpdb-> get_results(“The above statement”);

回答

0

好吧....所以我找到了解决办法

$wpdb->get_results("SET @maxp:=10;"); 
$wpdb->get_results("SET @point:[email protected];"); 
$wpdb->get_results("SET @prev:='';"); 
$samletstilling = $wpdb->get_results(" 
SELECT medlemsnr,navn,SUM(point) AS score 
FROM (SELECT IF ([email protected], @point:[email protected], @point:[email protected]) AS point,@prev:=art,navn,medlemsnr,art,maxvaegt 
FROM (SELECT medlemsnr,navn,art,MAX(vægt) AS maxvaegt 
FROM ct_storfanger_indberetninger WHERE YEAR(dato)=2017 GROUP BY medlemsnr,art ORDER BY art,maxvaegt DESC) l) s 
WHERE point>0 GROUP BY medlemsnr ORDER BY score DESC");