Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Получение рефералов второго уровня
 
 автор: pavluxa09   (09.07.2012 в 15:33)   письмо автору
 
 

Здравствуйте. У меня имеется таблица с пользователями вида:
ID пользователя | ID пригласившего | ...
Мне необходимо для определенного ID пользователя посчитать количество строк у которых ID пригласившего равен этому ID (определенному), это будет рефералы первого уровня. И так же само второго. То есть пройтись по всем рефералам первого уровня и посчитать скоко у них рефералов и сложить.

Ну обычная пирамида в партнерской программе. Помогите, как реализовать? Вложенным запросом как то не по Харьковски.

  Ответить  
 
 автор: cheops   (09.07.2012 в 16:12)   письмо автору
 
   для: pavluxa09   (09.07.2012 в 15:33)
 

>Мне необходимо для определенного ID пользователя посчитать количество строк у которых
>ID пригласившего равен этому ID (определенному)

Не очень понятно, цель какая? Определить к-во рефералов или ID пользователя?

  Ответить  
 
 автор: pavluxa09   (09.07.2012 в 18:09)   письмо автору
 
   для: cheops   (09.07.2012 в 16:12)
 

Определить количество рефералов второго уровня

  Ответить  
 
 автор: Sfinks   (09.07.2012 в 19:30)   письмо автору
 
   для: pavluxa09   (09.07.2012 в 15:33)
 

> Вложенным запросом как то не по Харьковски.
Иначе никак.

  Ответить  
 
 автор: pavluxa09   (09.07.2012 в 19:37)   письмо автору
 
   для: Sfinks   (09.07.2012 в 19:30)
 

Может можно как то выбрать рефералов первого уровня их засунуть в массив а по этому массиву посчитать скоко есть рефералов у людей которые находится в этом массиве. Вообщем на php задача реализовуется без проблем, но где то встречал что на SQL тоже можно при помощи какого-то оператора IN <>

  Ответить  
 
 автор: pavluxa09   (10.07.2012 в 12:03)   письмо автору
 
   для: pavluxa09   (09.07.2012 в 19:37)
 

UP

  Ответить  
 
 автор: Sfinks   (17.07.2012 в 00:09)   письмо автору
 
   для: pavluxa09   (09.07.2012 в 19:37)
 

С помощью IN вы посчитаете общее количество рефералов второго уровня, но не для каждого пользователя. Для каждого - это только в цикле. Для MySQL это реализуемо только на клиенте.

  Ответить  
 
 автор: pavluxa09   (17.07.2012 в 16:16)   письмо автору
 
   для: Sfinks   (17.07.2012 в 00:09)
 

SELECT referrerID FROM `table` WHERE `ID` = 'нужный ID у кото считаем кол-во рефералов второго уровня'

В результате запроса получаем список ID рефералов первого уровня, теперь пишем SELECT COUNT(*) FROM `Table` WHERE `ID` есть в списке полученный ранее.

Как это записать правильно?

  Ответить  
 
 автор: Sfinks   (17.07.2012 в 16:28)   письмо автору
 
   для: pavluxa09   (17.07.2012 в 16:16)
 

так и записать: ... where `id` IN ( список полученных ранее ИД через запятую )

  Ответить  
 
 автор: pavluxa09   (17.07.2012 в 16:43)   письмо автору
 
   для: Sfinks   (17.07.2012 в 16:28)
 

именно то что я хотел ) Спасибо )

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования