Повишаване на ранг

lub4o

Registered
Здравейте, написах си една система за новини и записвам всеки потребител колко новини е качил, та въпроса ми е как ще стане, който е качил от 0-50 да му показва ранг "Новобранец", от 50- 100 "Напредващ" и така до колкото ги определя, ранговете ги записвам в една таблица
1 Потребител снимка
2 напредващ снимка
 
PHP:
if($row['kacheni']=<'50') {
	// UPDATE заявка за ранга
	echo "Новобранец";
} elseif($row['kacheni']=<'100' and $row['rang'] == 'Nowobranec') {
	// UPDATE заявка за ранга
	echo "Напредващ";
}
 
lub4o каза:
Здравейте, написах си една система за новини и записвам всеки потребител колко новини е качил, та въпроса ми е как ще стане, който е качил от 0-50 да му показва ранг "Новобранец", от 50- 100 "Напредващ" и така до колкото ги определя, ранговете ги записвам в една таблица
1 Потребител снимка
2 напредващ снимка

След като ранговете ги записваш в дадена таблица то записваш
1-поле:името на ранга
2-поле:брой новини от минимум (примерно 100)
2-поле:брой новини до максимум (примерно 200)

и после с една проверка разбираш кой ранг е:



PHP:
$query= "
SELECT * FROM таблицата–на–ранговете 
WHERE
 поле-за-минималния-брой >= $броя–на–новините-на-потребителят 
AND
поле-за-максимален- броj<$броя–на–новините-на-потребителят limit 1
";
             $result=mysql_query($query);
      while($row = mysql_fetch_array($result))
       {
		     $ranga= $row['името-на-ранга'],
               
	   }
 
Стана ми така, ама не ползвам ранговете от БД...

PHP:
if($p <= 50)
{
echo "Нов";
}
elseif($p > 50 && $p <= 100)
{
echo "Напредващ";
}
elseif($p > 100 && $p <= 150)
{
echo "Ненормалник";
}else
{
echo 'тест';
}


@admin по този начин който си споделил, не трябва ли да има повече от една заявка, защото не мога да схвана.
 
Ти преди това нали имаш код който вади данните за въпросния потребител?
Усер, аватар, броя–на–новините-на-потребителят.....
и след като знаеш всичко за този потребител тази моята заявка е за сверяване кой ранг е.
Това е заявката към таблицата за ранговете за която говориш ти и аз предполагам, че ти преди това имаш други заявки чрез които вадиш
данните за потребителят.
 
Точно така, вадя данните на потребителя с други заявки. И сега правя следното

PHP:
$query = mysql_query("SELECT * FROM rank WHERE min >= $row[novini] AND max <= $row[novini]") or die (mysql_error());
      while($vops = mysql_fetch_array($query))
       {
                    echo $vops[ime];
               
           }

И не ми вади нищо, къде греша ?

А в таблицата съм направил така

id ime min max
1 нов 0 100
2 нов2 101 200
 
Първо това $row[novini] ме притеснява. Дай едно echo да видиш има ли реална стойност и дали всичко с него е наред.

После ако има реалана стойност и тя е примерно: 59 влез в phpmyadmin и
провери дали ще ти се ъзпълни заявката:

SELECT * FROM rank WHERE min >= 59 AND max <= 59

ако върне резултат значи всичко е наред .
 
Значи преди заявката като си напиша echo $row[novini] си ми излиза 55, влезнах в phpmyadmin изпълних заявката и

MySQL върна празен резултат (т.е. нула редове). ( Заявката отне -0.0000 секунди )



ЕДИТ: 6:42
Видях грешката, знаците трябва да са обратно, не

SELECT * FROM rank WHERE min >= 59 AND max <= 59

а

SELECT * FROM rank WHERE min <= 59 AND max >= 59

Благодаря и на двамата :)
 

Back
Горе