[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите исправить
234you
1)
<?php
$sl_lvs1 = mysql_num_rows(mysql_query("SELECT * FROM users WHERE curator = '".$ushar_ex['usernume']."' and level > '0' and active = 'yes'"));
echo $sl_lvs1*$price_lev1." $";
?>

Он всё правильно считает, когда действительно есть строки принадлежащие к куратор, уровень 1 и активирован = да, но если вдруг этот же человек становится уровень 2 и активирован = нет, то счетчик не выдаёт нужное значение.
Нужно, чтоб было level > '0' and active = 'yes' или уровень больше 1 и не важно какой статус у active
2) кусок кода блокировки
$blok_lev1 = mysql_query("SELECT * FROM users WHERE level = '1' and active = 'yes' or level ='2' and active = 'no'");
while($blk_lv1 = mysql_fetch_array($blok_lev1))
{
$sel_ref_1 = mysql_query("SELECT * FROM users WHERE curator = '".$blk_lv1['usernume']."' and active = 'yes'");
$num_ref_1 = mysql_num_rows($sel_ref_1);
if ($num_ref_1 > 1)
{
$update_profile1 = mysql_query("UPDATE users SET level = '2', active = 'no' WHERE usernume = '".$blk_lv1['usernume']."'");
}
}


Тут всё отлично, если оба стали level = 1 и active = yes, но если один из них успел стать level = 2, тогда не происходит UPDATE users SET level = '2', active = 'no' WHERE usernume = '".$blk_lv1['usernume']."'

Как попровить? Помогите пожалуйста!



Спустя 41 минута, 31 секунда (19.08.2012 - 18:25) Oyeme написал(а):
1.

"SELECT * FROM users WHERE curator = '".$ushar_ex['usernume']."' 

AND ((level > 0 AND active = 'yes') OR (level > 1)) "
;



2.Непонятно, что Вы хотите сделать.

Спустя 8 часов, 53 минуты, 40 секунд (20.08.2012 - 03:19) 234you написал(а):
1 - заработало, как нужно. спасибо!
На счет 2.
##################################################### Блокировка #################################################################
######################## Level 1########################################
$blok_lev1 = mysql_query("SELECT * FROM users WHERE level = '1' and active = 'yes'");
while($blk_lv1 = mysql_fetch_array($blok_lev1))
{
$sel_ref_1 = mysql_query("SELECT * FROM users WHERE curator = '".$blk_lv1['usernume']."' and active = 'yes'");
$num_ref_1 = mysql_num_rows($sel_ref_1);
if ($num_ref_1 > 1)
{
$update_profile1 = mysql_query("UPDATE users SET level = '2', active = 'no' WHERE usernume = '".$blk_lv1['usernume']."'");
}
}
######################## Level 1########################################


Вот оригинальный код, который работает сейчас на сервере.
Его суть:
Есть пользователи, обозначим их user 1,2,3 и т.д.
есть структура, в который кураторы и рефералы.
если user1 является куратором для user2 и user3
и user1 (level = 1, active = yes) стал куратором для user 2 (level = 1, active = no) и user 2 (level = 1, active = no)
а потом user2 стал ( level = 1, active = yes) и user3 стал ( level 1 active yes), то user1 автоматом становится (level 2, active = no).

НО
если user2 успел стать (level = 2, active = no), а user3 еще не стал (level 1 active yes), то user1 не переходит на (level 2, active no).

а мне нужно, чтоб user1 и в том и в том случае стал level 2 active no

Спустя 31 минута, 10 секунд (20.08.2012 - 03:50) 234you написал(а):
######################## Level 1########################################
$blok_lev1 = mysql_query("SELECT * FROM users WHERE level = '1' and active = 'yes'");
while($blk_lv1 = mysql_fetch_array($blok_lev1))
{
$sel_ref_1 = mysql_query("SELECT * FROM users WHERE curator = '".$blk_lv1['usernume']."' and ((level = '1' and active = 'yes') OR (level>'1')) ");
$num_ref_1 = mysql_num_rows($sel_ref_1);
if ($num_ref_1 > 1)
{
$update_profile1 = mysql_query("UPDATE users SET level = '2', active = 'no' WHERE usernume = '".$blk_lv1['usernume']."'");
}
}
######################## Level 1########################################


and ((level = '1' and active = 'yes') OR (level>'1')) ");

вроде по тестам работает, но правильно ли вообще теоретически?
Быстрый ответ:

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