2014-11-04 71 views
0

我使用joomla 2.5.27和社區生成器2.0.2。 我使用CB級插件社區建設者 我得到錯誤我得到SQL語法錯誤

您的SQL語法錯誤;檢查 對應於你的MySQL服務器版本正確的語法使用 附近 'AND confirmed = 1 AND approved = 1' 第1行SQL =選擇 COUNT(id)FROM r2yze_comprofiler WHERE cb_points手冊> AND confirmed = 1和approved = 1

如何修復這個錯誤

PHP代碼

// Calculate rank 
    if ($ordertype == "low") { 
     $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE `$fieldname` < $userfield AND `confirmed` = 1 AND `approved` = 1"); 
    } 
    else { 
     $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE `$fieldname` > $userfield AND `confirmed` = 1 AND `approved` = 1"); 
    } 
    $value = $_CB_database->loadResult() + 1; 

全PHP代碼

<?php 
/** 
* Joomla Community Builder Rank Field Type Plugin: plug_cbrankfield 
* @version $Id$ 
* @package plug_cbrankfield 
* @subpackage cb.rankfield.php 
* @author Joe Palmer 
* @copyright (C) 2009 www.softforge.co.uk 
* @license Limited http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL version 2 
* @final 1.0 
*/ 

/** ensure this file is being included by a parent file */ 
if (! (defined('_VALID_CB') || defined('_JEXEC') || defined('_VALID_MOS'))) { die('Direct Access to this location is not allowed.'); } 

global $_PLUGINS; 
$_PLUGINS->loadPluginGroup('user', array((int) 1)); 
$_PLUGINS->registerUserFieldTypes(array('rankfield' => 'CBfield_rank')); 
$_PLUGINS->registerUserFieldParams(); 

class CBfield_rank extends CBfield_counter { 
    /** 
    * Returns a field in specified format 
    * 
    * @param moscomprofilerFields $field 
    * @param moscomprofilerUser $user 
    * @param string    $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' 
    * @param string    $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists 
    * @param int     $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search 
    * @return mixed     
    */ 
    function getField(&$field, &$user, $output, $reason, $list_compare_types) { 
     global $_CB_framework, $ueConfig, $_CB_database; 

     $oReturn       = null; 

     $fieldname = $field->params->get('fieldOrderName', 'hits'); 
     $ordertype = $field->params->get('fieldOrderType', 'high'); 
     $userfield = $user->$fieldname; 

     // Calculate rank 
     if ($ordertype == "low") { 
      $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE `$fieldname` < $userfield AND `confirmed` = 1 AND `approved` = 1"); 
     } 
     else { 
      $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE `$fieldname` > $userfield AND `confirmed` = 1 AND `approved` = 1"); 
     } 
     $value = $_CB_database->loadResult() + 1; 

     switch ($output) { 
      case 'html': 
      case 'rss': 
       $oReturn    = $value; 
       break; 

      case 'htmledit': 
       // $oReturn    = parent::getField($field, $user, $output, $reason, $list_compare_types); 
       $oReturn    = null;  //TBD for now no searches...not optimal in SQL anyway. 
       break; 

      case 'json': 
      case 'php': 
      case 'xml': 
      case 'csvheader': 
      case 'fieldslist': 
      case 'csv': 
      default: 
       $oReturn    = $this->_formatFieldOutputIntBoolFloat($field->name, $value, $output); 
       break; 
     } 
     return $oReturn; 
    } 
}//end of rank field 
?> 

回答

0

試試這個。

// Calculate rank 
     if ($ordertype == "low") { 
      $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE ".$fieldname." < '".$userfield."' AND `confirmed` = 1 AND `approved` = 1"); 
     } 
     else { 
      $_CB_database->setQuery("SELECT COUNT(`id`) FROM #__comprofiler WHERE ".$fieldname." > '".$userfield."' AND `confirmed` = 1 AND `approved` = 1"); 
     } 
     $value = $_CB_database->loadResult() + 1;