Перейти к содержанию
Авторизация  
nickerder

HTML запрос из БД

Рекомендуемые сообщения

Доброго времени суток. Мне нужно, что бы в разговоре с НПС в диалоговом окне отображало cond ((к примеру) квестовый).
Что то вреде такого: Стадия: 4 
Где 4 - означала бы прогресс в квесте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
53 минуты назад, nickerder сказал:

Доброго времени суток. Мне нужно, что бы в разговоре с НПС в диалоговом окне отображало cond ((к примеру) квестовый).
Что то вреде такого: Стадия: 4 
Где 4 - означала бы прогресс в квесте.

В чем проблема? Перед отправкой html на клиент суй туда свою стадию. Само по себе оно там не окажется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кажись ты не понял вопрос, или я так и не смог его выразить. Нужно запрос при клики на диалог, что бы в диалоге отобразило что то из БД. в частности сейчас cond - часто просто используется в квестах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, nickerder сказал:

Кажись ты не понял вопрос, или я так и не смог его выразить. Нужно запрос при клики на диалог, что бы в диалоге отобразило что то из БД. в частности сейчас cond - часто просто используется в квестах.

ну а в чем проблема то?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема, что бы отобразить это значение в HTML диалоге.

25 минут назад, Demoncool сказал:

ну а в чем проблема то?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, nickerder сказал:

Проблема, что бы отобразить это значение в HTML диалоге.

 

setHtml("text").replace("text");

Изменено пользователем Demoncool

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, Demoncool сказал:

setHtml("text").replace("text");

Наверное я действительно не могу выразить свою мысль.
Мне нужно, что бы из файла HTML вышел запрос на БД определенного значения, и отобразилось в диалоге это значение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понимаю, чтобы из бд брало значение и выводилось в html?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, IIoIIPbIryH сказал:

Если я правильно понимаю, чтобы из бд брало значение и выводилось в html?

Даааа, такое возможно?))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, nickerder сказал:

Даааа, такое возможно?))

Давно не занимался, вряд ли я помощник в этом деле.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, IIoIIPbIryH сказал:

Давно не занимался, вряд ли я помощник в этом деле.

Все равно, большое спасибо, помог сформулировать мой запрос)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в обработке вывода конкретного хтмл делаешь запрос в бд посредствами явы, после чего ими же подставляешь полученное значение в хтмл

но вобще, лазать в бд за чем-то при каждом запросе диалога - это самое фиговое, что можно только выдумать - это же самый простой способ просто убить сервер, банально начиная запрашивать этот самый диалог часто и постоянно, вызывая повышенную нагрузку на базу и т.д.

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, nickerder сказал:

Все равно, большое спасибо, помог сформулировать мой запрос)

Ты можешь вывести значение из БД, но не на чистом HTML. Тебе нужно скрит написать, в котором ты выполнишь SELECT запрос и вернувшийся ответ передать в параметр, который ты будешь вызывать уже на HTML странице.

Пример:

Тут будет пример  
private final String SELECT_ITEMS = "SELECT SUM(count) AS count FROM items WHERE item_id = 57";	// Сам запрос. 
/** ЗАПРОС К БД **/
long countItem = 0;		// значение этой переменной мы будем показывать в HTML
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
		PreparedStatement ps = con.prepareStatement(SELECT_ITEMS);
		ResultSet rs = ps.executeQuery()) {
	if (rs.next()) {
		countItem = rs.getLong("count");	// получаем количество адены (id = 57 - это адена)		
	}

	ps.close();
	rs.close();
} catch (final SQLException e) {
}
String htm = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/test.htm");	//в какую HTML выводить наше значение
htm = htm.replace("%count%", String.valueOf(count));	// присваеваем параметру в HTML наше значение переменной count

Думаю как вызывать HTML Вы умеете, поэтому этот этап писать не буду (для КБ одно значение, для NPC другое, я не знаю какое Вам нужно и какая у Вас сборка)

А в самом HTML файле test.html (что я указал выше в коде), добавляем:

<p>%count%</p>

 

Hide  

Писал на скорую руку и для Java 8.

Надеюсь ничего не забыл. 
Удачи!

Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
42 минуты назад, Gaikotsu сказал:

в обработке вывода конкретного хтмл делаешь запрос в бд посредствами явы, после чего ими же подставляешь полученное значение в хтмл

но вобще, лазать в бд за чем-то при каждом запросе диалога - это самое фиговое, что можно только выдумать - это же самый простой способ просто убить сервер, банально начиная запрашивать этот самый диалог часто и постоянно, вызывая повышенную нагрузку на базу и т.д.

человек выше совершенно прав, что незачем к БД лишний раз обращаться...
для этого у вас в плеере коллекция QuestState и там находятся все состояния начатых квестов данного плеера.
а для работы с ним уже написан метод public QuestState getQuestState(final int questId), который собственно безопасно вернет вам квест-стейт персонажа.
PS: сабж выше с лостов, в л2ж или других 100% такое же есть, возможно под другим названием.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое простое что я нашел это:
 

Цитата

STAR = st.getInt("STAR")

bla = str(st.getInt("STAR"))

а в htm:

Цитата

<td> "+str(bla)+". </td>

И это оказалось проще. Всем спасибо!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...