$getref = (empty($_GET['ref'])) ? $_SESSION['iduser'] : intval($_GET['ref']);
$sql_refs1 = mysql_query("SELECT `id` FROM `tb_users` WHERE `referer`='".$getref."'");
$idr = array();
while($rrow=mysql_fetch_assoc($sql_refs1)) $idr[] = $rrow['id'];
echo count($idr);
вот тут выводит число 18
дальше
$sql_refs2 = mysql_query("SELECT * FROM tb_users where `referer` IN (".implode(', ', $idr).") ORDER BY `joindate` DESC"));
mysql_num_rows($sql_refs2) да и в цикле их 59
что это может быть ? никак не втыкаю
прошу помогите
Спустя 10 минут, 17 секунд (23.01.2012 - 18:51) Placido написал(а):
А что не так? У вас 18 id (т.е. записей), у которых referer = $getref. И 59 записей, у которых referer - один из тех 18 id.
Спустя 13 минут, 26 секунд (23.01.2012 - 19:04) okapo написал(а):
так он тоже 18 должен вывести откуда он берет 59 ?
еще 1запросе 1 или 2 ID то во втором вопросе вобще ничего не выводит
не понимаю что тут не то, вроде все как надо написал
еще 1запросе 1 или 2 ID то во втором вопросе вобще ничего не выводит
не понимаю что тут не то, вроде все как надо написал
Спустя 5 минут, 11 секунд (23.01.2012 - 19:10) inpost написал(а):
я бы сказал, что ты неправильно говоришь, потому что показываешь ту логику, какая должна быть, а свои ошибки скрыл, потому что ошибка там, где цифра 59.
Вместо count напиши print_r и убедишься, что их в массиве всего 19.
Я бы сказал, что у тебя ID повторились.
Вместо count напиши print_r и убедишься, что их в массиве всего 19.
Я бы сказал, что у тебя ID повторились.
Спустя 18 минут, 20 секунд (23.01.2012 - 19:28) okapo написал(а):
Array ( [0] => 269
[1] => 415
[2] => 1132
[3] => 2086
[4] => 2141
[5] => 2481
[6] => 2588
[7] => 2595
[8] => 2668
[9] => 2688
[10] => 2696
[11] => 2871
[12] => 2742
[13] => 2763
[14] => 2773
[15] => 2944
[16] => 3031
[17] => 3244 )
так их вообще 17
269, 415, 1132, 2086, 2141, 2481, 2588, 2595, 2668, 2688, 2696, 2871, 2742, 2763, 2773, 2944, 3031, 3244
мне надо вывести только этих id
откуда он мне берет столько? аш 59 ?
что не то написал иправляйте меня пожалуста
Спустя 5 минут, 21 секунда (23.01.2012 - 19:33) inpost написал(а):
Ты уверен, что их 17? Посчитай ручками, вот строчка первая... вот вторая... и т.д.
Покажи запрос, покажи, как ты считаешь КОЛИЧЕСТВО выбранных записей.
Покажи на скрин-шоте структуру БД.
Весь второй запрос введи в PMA, посмотри, что выведет.
Покажи запрос, покажи, как ты считаешь КОЛИЧЕСТВО выбранных записей.
Покажи на скрин-шоте структуру БД.
Весь второй запрос введи в PMA, посмотри, что выведет.
Спустя 27 минут, 27 секунд (23.01.2012 - 20:01) Игорь_Vasinsky написал(а):
их 18.
Цитата |
intval($_GET['ref']) |
прекращай..
(int)$_GET['ref'] - быстрее и об этом все знают.
скорее всего поторяются ID, как те и говорят, пробуй так
$sql_refs2 = mysql_query("SELECT * FROM tb_users where `referer` IN (".implode(', ', $idr).") ORDER BY `joindate` DESC GROUP BY `id`"));
и ID у тя auto_increment ?
Спустя 3 часа, 20 минут, 52 секунды (23.01.2012 - 23:22) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 23.01.2012 - 21:01) |
прекращай.. (int)$_GET['ref'] - быстрее и об этом все знают. |
Однако говорить о том, что используют intval() только утырки, тоже неверно - это индивидуальный выбор. Писать intval() можно хотя бы для единства стиля.
Спустя 29 минут, 15 секунд (23.01.2012 - 23:51) asokol написал(а):
okapo, в запросе sql_refs1 выбираются рефералы пользователя $getref. А в запросе sql_refs2 выбираются рефералы пользователей, полученных в sql_refs1.