| 
		
	
	
	
		
	Сообщений: 794 
	Тем: 31 
	Зарегистрирован: Dec 2012
	
 Репутация: 
2,838 
	
	
		Приветствую всех жителей этого форума! Прошу помочь с решением проблемы. 
Знающие люди mysql и умельцы php! Подскажите как сделать правильный sql запрос подсчитывающий количество аккаунтов с одинаковым user_id!
 
Имеем базу данных "sitedb."
 
Содержимое таблицы "accounts" с аккаунтами базы "sitedb"
 ![[Изображение: image.png]](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 ///
 }
![[Изображение: 03.gif]](http://my.exmor.ru/Smileys/korea/03.gif)  
	
	
	
		
	Сообщений: 566 
	Тем: 6 
	Зарегистрирован: Feb 2010
	
 Репутация: 
4,513 
	
	
		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.
 
	
	
	
		
	Сообщений: 1,317 
	Тем: 115 
	Зарегистрирован: Sep 2012
	
 Репутация: 
3,925 
	
		
		
		02-10-2013, 01:51 PM 
(Сообщение последний раз редактировалось: 02-10-2013, 02:40 PM   Dementor.)
		
	 
		Показывает кол-во аккаунтов, у которых user_id='5'
 [SRC="sql"]SELECT COUNT(login) FROM accounts WHERE user_id='5'[/SRC]
 
	
	
	
		
	Сообщений: 794 
	Тем: 31 
	Зарегистрирован: Dec 2012
	
 Репутация: 
2,838 
	
	
		Все не так поняли суть запроса. 
Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id". Если количество аккаунтов (поле "login") у определенного "user_id" (поле "user_id") равно 5 - возвращаем ошибку.
 
Сейчас попробую что нибудь придумать из ваших подсказок  ![[Изображение: 15.gif]](http://my.exmor.ru/Smileys/korea/15.gif)  
	
	
	
		
	Сообщений: 1,317 
	Тем: 115 
	Зарегистрирован: Sep 2012
	
 Репутация: 
3,925 
	
		
		
		02-10-2013, 02:19 PM 
(Сообщение последний раз редактировалось: 02-10-2013, 02:37 PM   Dementor.)
		
	 
		Krasavella Написал:Все не так поняли суть запроса.
 Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id". Если количество аккаунтов (поле "login") у определенного "user_id" (поле "user_id") равно 5 - возвращаем ошибку.
 
 Сейчас попробую что нибудь придумать из ваших подсказок
 ![[Изображение: 15.gif]](http://my.exmor.ru/Smileys/korea/15.gif) 
после своего поста, я понял, что я Вас не понял :redlol: Сейчас я напишу позже, сек. Просто без теста не могу такой запрос написать сразу, только настрою доступ к базе. Ждите... )
 
P.S. винду перебивал.
Добавлено через 18 минут Krasavella;275149 Написал:Необходимо сделать запрос выполняющих подсчет количества аккаунтов у определенного "user_id". погодите. так мой запрос это и делает, вы ничего не путаете?
	 
	
	
	
		
	Сообщений: 794 
	Тем: 31 
	Зарегистрирован: Dec 2012
	
 Репутация: 
2,838 
	
	
		РадужныйПони Написал:мой запрос это и делает, вы ничего не путаете? Мне нужно, чтобы запрос выполнял функцию подсчета логинов у одного и того же user_id, если логинов больше или равно 5 то возвращаем ошибку
 ![[Изображение: 06.gif]](http://my.exmor.ru/Smileys/korea/06.gif)  
	
	
	
		
	Сообщений: 1,317 
	Тем: 115 
	Зарегистрирован: Sep 2012
	
 Репутация: 
3,925 
	
	
		Krasavella Написал:Мне нужно, чтобы запрос выполнял функцию подсчета логинов у одного и того же user_id, если логинов больше или равно 5 то возвращаем ошибку
 ![[Изображение: 06.gif]](http://my.exmor.ru/Smileys/korea/06.gif) 
ну, вы хоть проверяли мой запрос? Вы наверное не правильно толкуете, чего хотите.
 
Пример: считаем кол-во логинов, у которых user_id=5. результат с вашего скрина выйдет: 3 
 
Не так?
	 
	
	
	
		
	Сообщений: 794 
	Тем: 31 
	Зарегистрирован: Dec 2012
	
 Репутация: 
2,838 
	
	
		РадужныйПони Написал:ну, вы хоть проверяли мой запрос? Вы наверное не правильно толкуете, чего хотите.
 Пример: считаем кол-во логинов, у которых 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 ///
 }
![[Изображение: 12.gif]](http://my.exmor.ru/Smileys/korea/12.gif)  
	
	
	
		
	Сообщений: 1,317 
	Тем: 115 
	Зарегистрирован: Sep 2012
	
 Репутация: 
3,925 
	
		
		
		02-10-2013, 02:59 PM 
(Сообщение последний раз редактировалось: 02-10-2013, 03:10 PM   Dementor.)
		
	 
		а по поводу возвращаем ошибку, это уже в запрос не входит, делайте сами типо что-то: 
[SRC="php"] 
if ($result >= 5)  
{  
	return false; // возвращаем ошибку в виду булевого  значения 
} 
[/SRC]
Добавлено через 48 секунд
Krasavella , тьфу так бы сразу и сказали... , ща отредактирую ваш отрывок скрипта.
Добавлено через 7 минут 
уточнить кое-что надо, это Вы сами писали?:
 PHP код: <?php $query = 'SELECT count(`login`) FROM #__accounts WHERE `login`= '.$db->Quote($Login);
 
если нет, то покажите оригинал, а то не ясно кое-что. У меня мозг ломается от увиденного, как можно получать кол-во логинов где сам же логин = ... Бред какой-то. Структуру полную я не вижу, поэтому уточняйте.
	 
	
	
	
		
	Сообщений: 794 
	Тем: 31 
	Зарегистрирован: Dec 2012
	
 Репутация: 
2,838 
	
	
		РадужныйПони Написал:это Вы сами писали? 
Это пример другого запроса, для проверки существует ли логин ![[Изображение: 20.gif]](http://my.exmor.ru/Smileys/korea/20.gif)  |