[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: sql запрос какой то непонятный
okapo

$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 то во втором вопросе вобще ничего не выводит

не понимаю что тут не то, вроде все как надо написал

Спустя 5 минут, 11 секунд (23.01.2012 - 19:10) inpost написал(а):
я бы сказал, что ты неправильно говоришь, потому что показываешь ту логику, какая должна быть, а свои ошибки скрыл, потому что ошибка там, где цифра 59.
Вместо 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, посмотри, что выведет.

Спустя 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.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.