2011-11-27 142 views
0

我创建参数来限制使用PHP变量的mysql查询。我正在输出查询以确保它是正确的,而且是。但是结果完全忽略了偏移参数。但是,如果我手动输入LIMIT,它工作正常。动态mysql查询LIMIT不起作用

$page_rows = 5; 
    $max = ($pagenum - 1) * $page_rows .',' .$page_rows; 

    $qry = "SELECT * FROM ".$wpdb->prefix."nslikethis_votes WHERE user_id = '$uid' AND active = 1 ORDER BY time DESC LIMIT " . $max; 

    $rs = mysql_query($qry); 

    $result = array(); 

    if($rs && $rows>0){ 
     while($lc = mysql_fetch_object($rs, "LikedContent")){ 
      $result[] = $lc; 
     }  
    } 

    return $result; 

1.4.3 $ QRY给了我这一点,我是否使用$最大或手动输入 '5,5':

SELECT * FROM wp_nslikethis_votes WHERE user_id = '1' AND active = 1 ORDER BY time DESC LIMIT 5,5 
+0

检查你的$最大变量.. –

+0

我也输出了最大变量,它看起来很好,例如。 '5,5' – jetlej

+0

最好的猜测是'$ pagenum'为零或未定义,或者'$ page_rows'为零或未定义。我建议只用代码调试器或输出'$ qry'到日志/屏幕来找出这个问题。 – hafichuk

回答

0

尝试这样做了检查:

 
$page_rows = "5"; 
$max = ($pagenum - 1) * $page_rows .',' .$page_rows; 
$qry = "SELECT * FROM ".$wpdb->prefix."nslikethis_votes WHERE user_id = '$uid' AND `active` = 1 ORDER BY `time` DESC LIMIT " . $max; 

//check for variables in query like $wpdb->prefix, $uid: are they fine, and try adding tilded sign as above 

希望这个作品为你

+0

应该提到我在上面设置了$ page_rows = 5。现在编辑问题。所以这并没有改变任何东西。我也回应$ max变量进行调试,它看起来很好,例如。 5,5 – jetlej