Изкарване на ранг според мненията на потребителя

nom3r1

Registered
Искам да изкарам ранга според мненията на потребителя.
Имам таблица forum_rang_posts в нея имам
id | name | posts
1 | Нов | 20

имам и таблица
users в която записвам отделен ранг: Потребител(1) , Модератор (2), Администратор (3)

Искам да направя така, че ако потребителя е Модератор да му показва, че е Модератор..

Пробвах така , ако ранга както е в таблицата users -> rank да взема числото (1,2,3) и да го извадя с if ->

Ако потребителя е ранг 2,3 няма проблеми. Проблемите ми са в if($ranka == 1) {
заявка

Не иска да ми извади ранга. Целта ми е да го направя както е при phpBB2-ката. :?: Кода до момента


Код:
if ($ranka == 1) {
$sql5d = "SELECT author FROM `forum_posts` WHERE author='$a_vtor'";
$result = mysql_query($sql5d);
$posts = mysql_num_rows($result);

$ct = mysql_query("SELECT * FROM forum_rang_posts WHERE posts='$posts'") or die(mysql_error());
$d3d = mysql_fetch_array($ct);
$name = $d3d['name'];
echo "$name";
	}
	elseif ($ranka == 2) {
	$ranka = "Модератор";
	}
	elseif ($ranka == 3) {
	$ranka = "Администратор";
	}

може да не съм обяснил както трябва, но е 4ри сутринта и не съм мигнал да спя.. Надявам се да ме разберете какво искам да направя.
 
аз ползвам това
Код:
<?php 
if($row[adm] == NULL) { 
echo "<font size='1' color='green'>Потребител</font>";
} 
else { 
echo $row[adm]; 
} 
?>
ако няма данни в базата admin показва Потребител само добавям и ми изкарва примерно Админ но нез дали тава ти трябва за което се извинявам :)
 
Значи, аз искам да изкарам автоматично ранговете от базата данни при дадени мнения, а ръчно показвам дали е Модератор или Администратор.

Ако юзъра има ранг 1 в таблица: `users` колона: rank , то ранга му бъде според мненията във форума.

Тоест първамата ми проверка е следната
Код:
$ranka = $row['rank'];
if ($ranka == 1) {
$ranka = "ПотребитеЛ";
}
elseif ($ranka == 2) {
$ranka = "Модератор";
}
elseif ($ranka == 3) {
$ranka = "Администратор";
}


Кода, с който проверявам ранга според мненията на потребителя е:
Код:
$sql = "SELECT author FROM `forum_posts` WHERE author='$a_vtor'";
$result = mysql_query($sql);
$posts = mysql_num_rows($result);

$sql2 = mysql_query("SELECT * FROM `forum_rang_posts` WHERE posts='$posts'") or die(mysql_error());
$rows = mysql_fetch_array($sql2);
$name = $rows['name'];
echo "$name";

Искам да ги събера двата кода в един и когато потребителя е ranka == 1
да му изкарва ранга според мненията във форума.
Имаме:
Нов - 0
Напреднал - 10
Активен - 20

forum_rang_posts
id | name | posts
1 | Нов | 0
2 | Напреднал | 10
3 | Активен | 20

Надявам се някой да може да ми помогне :)
 
$ranka = $row['rank'];
if ($sql >30) {
$r=$row['ranka'];
$rankadd = $r +1
$rankadd=mysql_query("UPDATE `users` SET `ranka` = '$rankadd' WHERE `username` = '$logged[username]'") or die(mysql_error());
}
ето и другата завка с която щече ще изкараме ранга с горната проверяваме колко са мненията

if ($ranka == '1' ) {
echo "Потребител";
}

така няма ли да стане ако завката с менията в който е автор е по-голяма от 30 ще изпълни завката в която ще му придаде ранк +1 т.е. попринцип това поле ще е 0 или 1 ако този юзър има повече от 30 мнения ще му сложа ранг +1 ще му стане 1 и ранм ако е едно ще му изведе "потребител" по същия начин е с другите.
 
Пробвай нещо такова
$select = mysql_query("SELECT
REPLACE(REPLACE(REPLACE(rank,'3','Администратор'),'2','Модератор'),'1','Потребител'),COUNT(`forum_posts`.`author`) AS counter
FROM `forum_users` LEFT JOIN `forum_posts` ON `forum_posts`.`userID` = `forum_posts`.`postid` WHERE `forum_posts`.`author` = '".$username."'")
or die(mysql_error());
if (mysql_result($select,0,0) == "Потребител") {
if (mysql_result($select,0,"counter") > 20) { $rang = "Активен"; }
else if (mysql_result($select,0,"counter") > 10) { $rang = "Напреднал"; }
else { $rang = "Нов"; }
}
else { $rang = mysql_result($select,0,0); }
echo $rang;
Ако имаш проблеми , дай структурата на двете бази данни и ще се опитам да ти наместя заявката. Но така ,както си я дал е много объркано за мене :roll:
 
@Replace,
точно това не искам да бъде всичко ръчно. Защото като добавя в таблицата ми друг ранг, след време или го променя не ми се занимава постоянно да правя ъпдейт на файла..

if (mysql_result($select,0,0) == "Потребител") {
if (mysql_result($select,0,"counter") > 20) { $rang = "Активен"; }
else if (mysql_result($select,0,"counter") > 10) { $rang = "Напреднал"; }
else { $rang = "Нов"; }

Това искам да го направя да е чрез базата от данни тоест:
forum_rangs_posts
 
Пробвай тогава да заместиш проверките с нещо такова
$query = mysql_query("SELECT `name`,`posts` FROM `forum_rangs_posts` ORDER BY `posts` DESC")or die(mysql_error());
while ($result = mysql_fetch_object($query)) {
if ($posts >= $result->posts) { echo $result->name; break; }
}
 

Back
Горе