Правильный Sql Запрос! - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Закрытая тема
Опции темы
Непрочитано 10.02.2013, 15:18   #11
Аватар для Dementor
Герой

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

Цитата:
Сообщение от Krasavella Посмотреть сообщение
Это пример другого запроса, для проверки существует ли логин
не понял совсем, вы проверяете существует ли логин, подсчитывая его кол-во? Вы меня окончательно запутали.

Добавлено через 4 минуты
Я не вижу Вашего полного класса, поэтому опять уточняю:

$db->loadResult() - это я так понимаю mysql_result()

Тогда, что у Вас mysql_fetch_assoc() ? Он мне нужен для доработки Вашего скрипта.

Последний раз редактировалось Dementor; 10.02.2013 в 15:23. Причина: Добавлено сообщение
Dementor вне форума
Непрочитано 10.02.2013, 15:35   #12
Аватар для gorodetskiy
Олдфаг

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

http://forum.zone-game.info/showthread.php?t=26651

Кто то не туда написал ответ на эту тему
__________________
СЕО Оптимизация сайтов
gorodetskiy вне форума
Сказали спасибо:
Непрочитано 10.02.2013, 15:36   #13
Аватар для Dementor
Герой

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

Вот короче, должно работать:

 
//// Count Accounts in DB ////
$query = 'SELECT login, user_id FROM #__accounts WHERE `login`= '.$db->Quote($Login);
$db->setQuery($query);
$useLogin = $db->loadAssocList();
 
$query = "SELECT COUNT(login) FROM #__accounts WHERE user_id={$useLogin['user_id']}";
$db->setQuery($query);
$countLogin = $db->loadResult();
 
if (!$useLogin['login'] || $countLogin >= 5) {
	JError::raiseNotice( '', 'REGISTRATION_COUNT_5' );
	return false; /// STOP if Login >= 5 ///
}
 
Code: PHP
Добавлено через 31 секунду
Цитата:
Сообщение от gorodetskiy Посмотреть сообщение
Кто то не туда написал ответ на эту тему
хахаха, уже сам заметил

Последний раз редактировалось Dementor; 10.02.2013 в 15:37. Причина: Добавлено сообщение
Dementor вне форума
Сказали спасибо:
Непрочитано 10.02.2013, 17:32   #14
Аватар для Krasavella
ваще Красауэлла

Автор темы (Топик Стартер) Re: Правильный Sql Запрос!

Цитата:
Сообщение от РадужныйПони Посмотреть сообщение
должно работать:
Код:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /storage/home/srv44892/inetpub/components/register.php on line 92
Полностью код:

Полностью код:
Свернуть ↑Развернуть ↓



В чем ошибка?
Krasavella вне форума
Непрочитано 10.02.2013, 17:38   #15
Пользователь

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

PHP код:
$query2 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($jLogin)' AND `user_id`='.($user_id_login['user_id']); 
а зачем вам тут нужен WHERE login, если у вас массив из этого запроса состоит? да и вообще если логин, я так понимаю, уникальный, то тем более, а если так, то ваш запрос вернет 1.
x3k вне форума
Сказали спасибо:
Непрочитано 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 вне форума
Сказали спасибо:
Непрочитано 10.02.2013, 18:34   #17
Аватар для Krasavella
ваще Красауэлла

Автор темы (Топик Стартер) Re: Правильный Sql Запрос!

Ошибок больше нет, но теперь появилась другая ошибка.

Код:
Fatal error: Call to a member function save() on a non-object in /storage/home/srv44892/inetpub/components/controller.php on line 85
Решила долго не думая посмотреть в другое место, может подскажите как из этого извлечь полезное?

Что то полезное:
Свернуть ↑Развернуть ↓


И второй кусок:

Что то полезное 2:
Свернуть ↑Развернуть ↓


И третий кусочек:

PHP код:
    <div id="jUsersBlock1">
    <?php if ($this->jAccess >= ) { ?>
        <div class="jBlock1"><a href="/register">
          <div id="jAdd"></div></a>
        </div>
Из этого всего нужно добавить тот же <?php if ($this->jAccess >= 1 ) { ?> в

Финальный вариант:
Свернуть ↑Развернуть ↓


Суть такова: если на мастер аккаунте больше 5 игровых аккаунтов, возвращаем ошибку.

Не понимаю
Krasavella вне форума
Непрочитано 10.02.2013, 18:38   #18
Аватар для Dementor
Герой

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

ой... что-то вы жутко перехимичили. Давайте вы выложите оригинальный код register.php А я вставлю аккуратно, то что Вам нужно.
Dementor вне форума
Сказали спасибо:
Непрочитано 10.02.2013, 18:49   #19
Аватар для Krasavella
ваще Красауэлла

Автор темы (Топик Стартер) Re: Правильный Sql Запрос!

Цитата:
Сообщение от РадужныйПони Посмотреть сообщение
А я вставлю аккуратно
Вот оригинальный register.php


Из этого всего нужно добавить тот же <?php if ($this->jAccess >= 1 ) { ?> в

Финальный вариант:
Свернуть ↑Развернуть ↓


Суть такова: если на мастер аккаунте больше 5 игровых аккаунтов, возвращаем ошибку.

Вот сюда
Krasavella вне форума
Непрочитано 10.02.2013, 22:30   #20
Аватар для Dementor
Герой

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

Цитата:
Сообщение от Krasavella Посмотреть сообщение
if ($this->jAccess >= 1 ) {
а эт что такое? куда его добавить?
Dementor вне форума
Закрытая тема

Метки
accounts, countaccount, logins, php, sql


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Запрос Speed1 Lineage II 14 24.01.2013 08:54
zone_vertices tymboss Lineage II 0 19.03.2010 23:53
(Установка ОФФ Сервера Lineage2) Tonchi Копия официального сервера 2 03.01.2010 13:37
Id Wyvern и Sql запрос на дроп HuKoJIaC Работа со скриптами 4 19.12.2008 13:22
Install Microsoft SQL Server 2000 Tonchi Копия официального сервера 0 24.11.2007 00:40


© 2007–2022 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 14:12. Часовой пояс GMT +3.

Вверх