Назад

Рейтинг гомункулов... опять)

Автор: xDREDDx: Дата: 01.16.2011

Вот и снова нуп нуждается в вашей помощи)
Вопщем сделал скрипт, а смешной запрос составить не получается...
Суть проблемы в том, что отображается ID хозяина гомункула, а нужно имя... Как ни вертел, никак))


// Соединяемся с базой данных
$db = mysql_pconnect($CONFIG_sql_host,$CONFIG_sql_username,$CONFIG_sql_password)
// Если не удается подключиться
or die (mysql_error());

// подгружаем БД
$select = mysql_select_db($CONFIG_sql_dbname, $db) or die(mysql_error());

//if(!$SERVER['system_safe'])
// header("location:index.php?act=idx");

echo "






";
echo "



";
opmain_body("Рейтинг гомункулов");
echo "








";

if($id > 50) break;
$res = mysql_query("SELECT `name`, `level`, `class`, `char_id` FROM `homunculus` ORDER BY `level` DESC LIMIT 100 ",$db);
$id = 1;
while( $charinf = mysql_fetch_array( $res ) )
{

echo '






';

$id++;

}

echo "
Рейтинг Имя хозяина Имя гомункула Уровень Класс
'.$id.' '.$charinf['char_id'].' '.$charinf['name'].' '.$charinf['level'].' '.$homclass[$charinf['class']].'

";
clmain_body();

?>

Автор: xDREDDx: Дата: 01.17.2011

Спасибо огромное)

Автор: Asuma: Дата: 01.17.2011

Тут в один запрос уложиться можно, если использовать LEFT JOIN по char_id.

Автор: xDREDDx: Дата: 01.17.2011

А вот еще хорошо было бы отсортировать от гм уровня... например выше 20, чтоб не добавлялся в таблицу...
Поможете?)

Автор: Asuma: Дата: 01.18.2011


SELECT homunculus.name AS homunculus_name, char.name AS char_name, level, homunculus.class AS homunculus_class FROM `homunculus` LEFT JOIN `char` ON homunculus.char_id=char.char_id ORDER BY `level` DESC LIMIT 100

Автор: xDREDDx: Дата: 01.18.2011

О класс, спасибо....
А вот отсортировка от уровня привелегий, как бы сделать?

Автор: xDREDDx: Дата: 01.21.2011

Ну помогите кто-нибудь... самая последняя проблема моя, отсортировка от уровня ГМ ((

Автор: xDREDDx: Дата: 01.22.2011

UP!
T_T

Автор: Sanasol: Дата: 01.23.2011

Так не хотелось отвечать))

SELECT * FROM `homunculus` LEFT JOIN `char` ON homunculus.char_id=char.char_id LEFT JOIN `login` ON char.account_id=login.account_id WHERE login.account_id < 10 ORDER BY `level` DESC LIMIT 100


Попробуй.

Автор: xDREDDx: Дата: 01.23.2011

спасибо, но что-то не хочет((
а без Left Join если попробовать?

Автор: Sanasol: Дата: 01.23.2011


// Соединяемся с базой данных  
$db = mysql_pconnect($CONFIG_sql_host,$CONFIG_sql_username,$CONFIG_sql_password)
// Если не удается подключиться
or die (mysql_error());

// подгружаем БД
$select = mysql_select_db($CONFIG_sql_dbname, $db) or die(mysql_error());

//if(!$SERVER['system_safe'])
// header("location:index.php?act=idx");

echo "






";
echo "



";
opmain_body("Рейтинг гомункулов");
echo "








";

if($id > 50) break;
$res = mysql_query("SELECT `name`, `level`, `class`, `char_id` FROM `homunculus` ORDER BY `level` DESC LIMIT 100 ",$db);
$id = 1;
while( $charinf = mysql_fetch_array( $res ) )
{
$charid = $charinf['char_id'];
$owner = mysql_query("SELECT `account_id`,`name` FROM `char` where `char_id`='$charid'",$db);
$owner_name = mysql_fetch_array($owner);
$accid = $owner_name['account_id'];
$admin = mysql_query("SELECT `level` FROM `login` where `account_id`='$accid'",$db);
$admin_array = mysql_fetch_array($admin);

if ($admin_array['level'] > 10) { continue; }

echo '






';

$id++;

}

echo "
Рейтинг Имя хозяина Имя гомункула Уровень Класс
'.$id.' '.$owner_name['name'].' '.$charinf['name'].' '.$charinf['level'].' '.$homclass[$charinf['class']].'

";
clmain_body();

?>

Автор: xDREDDx: Дата: 01.23.2011

Ура!) Огромнейшее спасибо!)