Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Правильный Sql Запрос! (https://forum.zone-game.info/showthread.php?t=26645)

Krasavella 10.02.2013 12:34

Правильный Sql Запрос!
 
Приветствую всех жителей этого форума! Прошу помочь с решением проблемы.

Знающие люди mysql и умельцы php! Подскажите как сделать правильный sql запрос подсчитывающий количество аккаунтов с одинаковым user_id!


Имеем базу данных "sitedb."

Содержимое таблицы "accounts" с аккаунтами базы "sitedb"

http://rghost.ru/43687917/image.png

Есть модуль регистрации!

Нужно написать запрос, выполняющих подсчет количества аккаунтов у определенного "user_id". Если количество аккаунтов у определенного "user_id" равно 5 - возвращаем ошибку.


Пример выполнения запроса:

Код:

                //// Count Accounts in DB ////
                        $query = 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($Login);
                        $db->setQuery($query);
                        if ($db->loadResult()) {
                                JError::raiseNotice( '', 'REGISTRATION_COUNT_5' );
                                return false; /// STOP if Login = 5 ///
                        }

http://my.exmor.ru/Smileys/korea/03.gif

ExLite 10.02.2013 12:57

Re: Правильный Sql Запрос!
 
SELECT user_id,COUNT(*) FROM accounts GROUP BY user_id;
покажет сколько логинов у всех user_id

SELECT user_id,COUNT(*) FROM accounts WHERE user_id='11' GROUP by user_id;
так покажет кол-во логинов у user_id 11.

Dementor 10.02.2013 13:51

Re: Правильный Sql Запрос!
 
Показывает кол-во аккаунтов, у которых user_id='5'

SELECT COUNT(login) FROM accounts WHERE user_id='5'
Code: SQL

Krasavella 10.02.2013 14:05

Re: Правильный Sql Запрос!
 
Все не так поняли суть запроса.

Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id". Если количество аккаунтов (поле "login") у определенного "user_id" (поле "user_id") равно 5 - возвращаем ошибку.

Сейчас попробую что нибудь придумать из ваших подсказок http://my.exmor.ru/Smileys/korea/15.gif

Dementor 10.02.2013 14:19

Re: Правильный Sql Запрос!
 
Цитата:

Сообщение от Krasavella (Сообщение 275149)
Все не так поняли суть запроса.

Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id". Если количество аккаунтов (поле "login") у определенного "user_id" (поле "user_id") равно 5 - возвращаем ошибку.

Сейчас попробую что нибудь придумать из ваших подсказок http://my.exmor.ru/Smileys/korea/15.gif

после своего поста, я понял, что я Вас не понял :redlol: Сейчас я напишу позже, сек. Просто без теста не могу такой запрос написать сразу, только настрою доступ к базе. Ждите... )

P.S. винду перебивал.

Добавлено через 18 минут
Цитата:

Сообщение от Krasavella (Сообщение 275149)
Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id".

погодите. так мой запрос это и делает, вы ничего не путаете?

Krasavella 10.02.2013 14:50

Re: Правильный Sql Запрос!
 
Цитата:

Сообщение от РадужныйПони (Сообщение 275152)
мой запрос это и делает, вы ничего не путаете?

Мне нужно, чтобы запрос выполнял функцию подсчета логинов у одного и того же user_id, если логинов больше или равно 5 то возвращаем ошибку
http://my.exmor.ru/Smileys/korea/06.gif

Dementor 10.02.2013 14:56

Re: Правильный Sql Запрос!
 
Цитата:

Сообщение от Krasavella (Сообщение 275161)
Мне нужно, чтобы запрос выполнял функцию подсчета логинов у одного и того же user_id, если логинов больше или равно 5 то возвращаем ошибку
http://my.exmor.ru/Smileys/korea/06.gif

ну, вы хоть проверяли мой запрос? Вы наверное не правильно толкуете, чего хотите.

Пример: считаем кол-во логинов, у которых user_id=5. результат с вашего скрина выйдет: 3

Не так?

Krasavella 10.02.2013 14:58

Re: Правильный Sql Запрос!
 
Цитата:

Сообщение от РадужныйПони (Сообщение 275165)
ну, вы хоть проверяли мой запрос? Вы наверное не правильно толкуете, чего хотите.

Пример: считаем кол-во логинов, у которых user_id=5. результат с вашего скрина выйдет: 3

Не так?

Именно так! А как этот запрос укомпоновать в php скрипте? Чтобы выполнялся запрос и если количество логинов больше или равно 5 - return false; ?

Код:

                //// Count Accounts in DB ////
                        $query = 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($Login);
                        $db->setQuery($query);
                        if ($db->loadResult()) {
                                JError::raiseNotice( '', 'REGISTRATION_COUNT_5' );
                                return false; /// STOP if Login = 5 ///
                        }

http://my.exmor.ru/Smileys/korea/12.gif

Dementor 10.02.2013 14:59

Re: Правильный Sql Запрос!
 
а по поводу возвращаем ошибку, это уже в запрос не входит, делайте сами типо что-то:

 
if ($result >= 5) 
{ 
	return false; // возвращаем ошибку в виду [U]булевого[/U] значения
}
 
Code: PHP
Добавлено через 48 секунд
Krasavella, тьфу так бы сразу и сказали... , ща отредактирую ваш отрывок скрипта.

Добавлено через 7 минут
уточнить кое-что надо, это Вы сами писали?:

PHP код:

$query 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($Login); 

если нет, то покажите оригинал, а то не ясно кое-что. У меня мозг ломается от увиденного, как можно получать кол-во логинов где сам же логин = ... Бред какой-то. Структуру полную я не вижу, поэтому уточняйте.

Krasavella 10.02.2013 15:12

Re: Правильный Sql Запрос!
 
Цитата:

Сообщение от РадужныйПони (Сообщение 275168)
это Вы сами писали?

Это пример другого запроса, для проверки существует ли логинhttp://my.exmor.ru/Smileys/korea/20.gif


Текущее время: 03:38. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot