Мой первый вопрос.

Gpolygon

Путник
Пользователь
Сообщения
16
Розыгрыши
0
Репутация
39
Реакции
2
Баллы
0
Привет всем участникам форума.
Значит обрисую свою проблему.
Есть база в ней таблица, в которой находятся имена (Name) и у каждого имени есть очки (Score) как мне вывести имена в порядке убывания очков, т.е сделать некую таблицу лидеров. просто подтолкните на мысль.Можно конечно вытаскивать поочередно значения и сравнивать их и в итоге с помощью кучи проверок выявить наибольшее наименьшее наименьше наименьшего и т.д но мне кажется это бредом:Aty:
 
Простой запрос в базу: SELECT * FROM `tablename` ORDER BY `score` DESC
 
Этот запрос вернет список всех значений в таблице в порядке убывания? мне просто надо вывести мена в хтмл документ.
 
Этот запрос вернет список всех значений в таблице в порядке убывания? мне просто надо вывести мена в хтмл документ.
Да, этот запрос выведет в порядке убывания, если вам нужно еще ограничить количество записей, дописываем к запросу LIMIT [сколько выводить]

Код:
SELECT * FROM `tablename` ORDER BY `score` DESC LIMIT 10
 
  • Мне нравится
Реакции: Gpolygon

    Gpolygon

    Баллов: 1
    За эпический ответ
Ох спасибо огромное тебе ЧЕЛОВЕЧИЩЕ!
 
Такой еще вопрос.



выводит пустое окно хтмл, как мне сделать ,что бы выводился этот списокк?
 
Примерно так:
Код:
public static NpcHtmlMessage CovenantLeader(L2PcInstance member)
{
    NpcHtmlMessage html = new NpcHtmlMessage(1);

    Connection con = null;
    PreparedStatement statement = null;
    ResultSet rset = null;
    try
    {
        con = L2DatabaseFactory.getInstance().getConnection();
        statement = con.prepareStatement("SELECT * FROM covenant_hunter ORDER BY score DESC LIMIT 10");
        rset = statement.executeQuery();
        final StringBuilder strBuffer = StringUtil.startAppend(3500, "<html><title></title><body><center>");
        strBuffer.append("<table><tr><td>Name</td><td>Score</td></tr>" );
       
        while(rset.next())
        {
            strBuffer.append("<tr><td>");
            strBuffer.append(rset.getString("name"));
            strBuffer.append("</td><td>" );
            strBuffer.append(String.valueOf(rset.getInt("score")));
            strBuffer.append("</td></tr>" );
        }
        strBuffer.append("</table>");
        strBuffer.append("</center></body></html>");
        html.setHtml(strBuffer.toString());
        member.sendPacket(html);
   
    }
    catch (SQLException e)
    {
        e.printStackTrace();
    }
    finally
    {
        try
        {
            rset.close();
            statement.close();
            con.close();
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
   
    return html;
}
 
Да все работает, вот только колонка очков съехала не много, но с этим я разберу. Спасибо еще раз.
 
Назад
Сверху Снизу