Показать сообщение отдельно
Непрочитано 10.02.2013, 18:11   #16
Аватар для Dementor
Герой

По умолчанию Re: Правильный Sql Запрос!

Цитата:
Сообщение от Krasavella Посмотреть сообщение
В чем ошибка?
Вы перехамичили там так... Вы пропустили скобку '}'

Это уже сами смотрите где что было пропущено.

Добавлено через 2 минуты
Ну вот как я поправил. поняв код:

<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
 
jimport('joomla.application.component.model');
JTable::addIncludePath( JPATH_COMPONENT . DS . 'tables' );
 
class JusersModelRegister extends JModel {
 
//    Constructor
    function __construct() {
        parent::__construct();
    }
 
//
    public function save($post) {
    global $mainframe;        
    $table    = &$this->getTable();
//// Input Data //// 
    $jLogin        =    $post ['login'];
    $jPassword    =    $post ['password'];
    $jPassword1    =    $post['password1'];
    $jEmail        =    $post ['email'];
    $jComments    =    $post['comments'];
    $jPattern    =    '[^a-z,^A-Z,^0-9]';
    $jDB        =    &JFactory::getJDbo();
    $db        =    &JFactory::getDBO();
//// Check Empty Input Data //// 
    //// Check Empty Login //// 
    if (empty($jLogin)) {
        JError::raiseNotice( '', 'REGISTRATION_EMPTY_LOGIN' ); 
        return false;        
    }
    //// Check Empty Password //// 
    if (empty($jPassword)) {
        JError::raiseNotice( '', 'REGISTRATION_EMPTY_PASS' ); 
        return false;
    }
    //// Check Empty Password //// 
    if (empty($jPassword1)) {
        JError::raiseNotice( '', 'REGISTRATION_EMPTY_PASS1' ); 
        return false;
    }    
    /// Check reEnter Password ///
    if ($jPassword <> $jPassword1) {
        JError::raiseNotice( '', 'REGISTRATION_NOT_PASS2' ); 
        return false;
    }
//// Check Login in DB //// 
    if ($jLogin) {
        //// Server DB //// 
        $querys = 'SELECT count(`login`) FROM #__accounts WHERE login = '.$jDB->Quote($jLogin);                
        $jDB->setQuery($querys);
        if ($jDB->loadResult()) {
            JError::raiseNotice( '', 'REGISTRATION_ALREADY_REGISTRED_ON_SERVER' );
            return false; /// STOP if Login in use ///
        } 
		else {
        //// Site DB ////
            $query = 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($jLogin);
            $db->setQuery($query);
            if ($db->loadResult()) {
                JError::raiseNotice( '', 'REGISTRATION_ALREADY_REGISTRED' );
                return false; /// STOP if Login in use ///
            } 
			else {
				//// Count Accounts > 5 Site DB ////
				$query = 'SELECT login, user_id FROM #__accounts WHERE `login`= '.$db->Quote($jLogin);
				$db->setQuery($query);
				$user_id_login = $db->loadAssocList();
				$query2 = 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($jLogin)' AND `user_id`='.($user_id_login['user_id']);
				$db->setQuery($query2);
				if ($db->loadResult() >= 5) {
					JError::raiseNotice( '', 'REGISTRATION_ALREADY_REGISTRED' );
					return false; /// STOP if Login in use ///
				}
				/// IF LOGIN NOT IN USE in Site DB and Server DB ///
				/// WRITE DATA in Server DB ///
				$jPassCode    = base64_encode(pack('H*', sha1($jPassword)));
				$query = 'INSERT INTO accounts (login, password, access_level) 
					VALUES ('.$jDB->Quote($post ['login']).', '.$jDB->Quote($jPassCode).', 0)';
				$jDB->setQuery($query);
				if (!$jDB->query()) { /// STOP if error ///
					JError::raiseError( 500, $jDB->stderr() );
					return false;
				}
			}
        }
    }
// привязываем поля формы к таблице
        if (!$table->bind($post)) {
            $this->setError($table->getError());
            return false;
        }
// проверяем данные
        if ($table->check($post)) {
            if (!$table->store($post)) {
                $this->setError($table->getError());
                return false;
            }
        } else { 
            $this->setError($table->getError());
            return false;
        }
        return true;
    } 
}
?>
Code: PHP

Последний раз редактировалось Dementor; 10.02.2013 в 18:14. Причина: Добавлено сообщение
Dementor вне форума
Сказали спасибо: