Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.05.2010, 17:05   #41
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Одним запросом тут не обойтись. Если из консоли хочешь посмотреть - ничем не могу помочь, а если через php, то примерно так:


Внимание! Этот запрос очень злой, если у тебя очень много чаров - нагрузка на сервер будет огромная. Советую его не использовать, это так - первое что пришло на ум.
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 25.05.2010, 17:42   #42
qazarius
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Hantet Посмотреть сообщение
Одним запросом тут не обойтись. Если из консоли хочешь посмотреть - ничем не могу помочь, а если через php, то примерно так:


Внимание! Этот запрос очень злой, если у тебя очень много чаров - нагрузка на сервер будет огромная. Советую его не использовать, это так - первое что пришло на ум.
Выдаёт 1 ник с ip и Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
  Ответить с цитированием
Старый 25.05.2010, 17:47   #43
Neggod
RMDC Donator
 
Регистрация: 07.03.2010
Адрес: Суровый Город
Сообщений: 41
Сказал(а) спасибо: 23
Поблагодарили 25 раз(а) в 13 сообщениях
Записей в дневнике: 1
Neggod На верном пути
Отправить сообщение для Neggod с помощью Skype™
По умолчанию

SELECT cc.`name`, ai.`last_ip` 
FROM `characters`.`characters` cc , `realmd`.`account` ai
WHERE cc.account = ai.id;
Neggod вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Hantet (25.05.2010)
Старый 25.05.2010, 18:55   #44
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от qazarius Посмотреть сообщение
Подскажите пожалуйста запрос который выводил бы список персонажей и их ip
SELECT
characters.characters.name,
realmd.account.last_ip
FROM
characters.characters
Left Join realmd.account
ON
characters.characters.account = realmd.account.id

Последний раз редактировалось Fear; 28.10.2010 в 01:11.
  Ответить с цитированием
Старый 04.09.2010, 02:21   #45
Helpme
Гость
 
Сообщений: n/a
По умолчанию

Помогите с запросом на вывод:
топ 5 арена команд (столбцы name, rating)
SELECT ................. ORDER BY ..... DESC LIMIT 0 , 5;
не разобрался
  Ответить с цитированием
Старый 04.09.2010, 02:56   #46
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию


SELECT at.name, ats.rating
FROM arena_team at
INNER JOIN arena_team_stats ats ON at.arenateamid = ats.arenateamid
ORDER BY ats.rating DESC
LIMIT 0 5

Последний раз редактировалось Fear; 28.10.2010 в 01:09.
Праведник вне форума   Ответить с цитированием
Старый 13.09.2010, 15:23   #47
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

не очень понятно почему запрос вида

SELECT `entry` FROM `script_texts` WHERE `content_loc8` = "NULL"


не делает выборку строчек с пустым content_loc8

вариант с "" тоже не выдаёт

хотя почему то обратное выдает нормально
SELECT `entry` FROM `script_texts` WHERE `content_loc8` <> "NULL"
__________________
Когда-нибудь на оффе поставят Mangos...

Последний раз редактировалось Fear; 28.10.2010 в 01:10.
partizanes вне форума   Ответить с цитированием
Старый 13.09.2010, 15:47   #48
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

"NULL" - текст NULL
NULL - отсутствие значения

Проверка на NULL - IS NULL
Проверка на не NULL - IS NOT NULL
Проверка на наличие значения - !='' (включает проверку на '' и NULL).
virusav вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
Hantet (13.09.2010), KiriX (14.09.2010), Lordronn (13.09.2010), partizanes (13.09.2010)
Старый 14.09.2010, 08:57   #49
Lurker
Новичок
 
Регистрация: 08.03.2010
Сообщений: 13
Сказал(а) спасибо: 32
Поблагодарили 7 раз(а) в 6 сообщениях
Lurker На верном пути
По умолчанию

Может где проскакивало я не нашел, тыкните пальцем или подскажите запрос на Сброс КД на все Инсты
Lurker вне форума   Ответить с цитированием
Старый 14.09.2010, 09:01   #50
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

Цитата:
Сообщение от Lurker Посмотреть сообщение
Может где проскакивало я не нашел, тыкните пальцем или подскажите запрос на Сброс КД на все Инсты
обнули таблицы, где хранится состояние инстов. Инфа про таблицы на WIKI.
Кот ДаWINчи вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lurker (14.09.2010)
Старый 14.09.2010, 09:08   #51
fedr
Новичок
 
Аватар для fedr
 
Регистрация: 11.03.2010
Сообщений: 10
Сказал(а) спасибо: 13
Поблагодарили 4 раз(а) в 3 сообщениях
fedr На верном пути
По умолчанию

Цитата:
Сообщение от Lurker Посмотреть сообщение
Может где проскакивало я не нашел, тыкните пальцем или подскажите запрос на Сброс КД на все Инсты
TRUNCATE TABLE `groups`; 
TRUNCATE TABLE `group_instance`;
TRUNCATE TABLE `group_member`;
TRUNCATE TABLE `character_instance`;
TRUNCATE TABLE `instance`;
TRUNCATE TABLE `instance_reset`;

Последний раз редактировалось Fear; 28.10.2010 в 01:08.
fedr вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Lightunit (14.09.2010), Lurker (14.09.2010)
Старый 27.10.2010, 18:57   #52
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

Подскажите запрос (вдруг готовый завалялся), или хотябы направьте на путь истинный.
Необходимо выбрать данные по вещам у игрока: айди камней, айди инчанта у вещи Х
Праведник вне форума   Ответить с цитированием
Старый 28.10.2010, 00:59   #53
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от Праведник Посмотреть сообщение
Подскажите запрос (вдруг готовый завалялся), или хотябы направьте на путь истинный.
Необходимо выбрать данные по вещам у игрока: айди камней, айди инчанта у вещи Х
Селект фром "по вещам игрока" вхере "айди инчанта у вещи" = "Х".
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 28.10.2010, 10:57   #54
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

tempura, довольно очевидный вариант
Только есть 1 но:

В таблице character_inventory хранится инфа о слоте вещи, её гуид и айди.
Ни слова про её модификации.
Праведник вне форума   Ответить с цитированием
Старый 28.10.2010, 11:07   #55
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

http://wiki.ytdb.ru/index.php/Character_inventory
http://wiki.ytdb.ru/index.php/Item_instance
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Праведник (28.10.2010)
Старый 28.10.2010, 13:01   #56
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от Праведник Посмотреть сообщение
В таблице character_inventory хранится инфа о слоте вещи, её гуид и айди.
Ни слова про её модификации.
Это вполне естественно, потому что надо запрос в таблицу "по вещам игрока" писать, а не в "character_inventory".
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Праведник (28.10.2010)
Старый 07.12.2010, 14:43   #57
Stoun
Гость
 
Сообщений: n/a
По умолчанию

Скоро праздники, хотелось бы отослать письмо всем персонажам, письмо с итемом (лучше с двумя) кто делал такое, поделитесь скриптом. Спасибо
  Ответить с цитированием
Старый 02.04.2011, 18:19   #58
hyperion
Новичок
 
Регистрация: 02.05.2010
Сообщений: 28
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 2 сообщениях
hyperion На верном пути
По умолчанию

Возникла проблема, в SQL не особо силен.
Как можно выбрать значения с одного поля по определенному условию?
Приведу пример, словами сложно выразить)

Есть 2 таблицы, character_kill k и Characters c, нужно в одном запросе получить сумму c.stored_honorable_kills и количество килов с k для k.type = 1, а так же сумму c.stored_dishonorable_kills и количество килов с k для k.type = 2 для определенного гуида. Грубо говоря 1 запросом получить лайфтайм ХК и ДК. Или тут одним запросом не обойтись, а делать SELECT COUNT(*) FROM character_kill WHERE type = x AND guid = y для каждого типа убийств?
hyperion вне форума   Ответить с цитированием
Старый 03.04.2011, 11:01   #59
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от hyperion Посмотреть сообщение
Возникла проблема, в SQL не особо силен.
Как можно выбрать значения с одного поля по определенному условию?
Приведу пример, словами сложно выразить)

Есть 2 таблицы, character_kill k и Characters c, нужно в одном запросе получить сумму c.stored_honorable_kills и количество килов с k для k.type = 1, а так же сумму c.stored_dishonorable_kills и количество килов с k для k.type = 2 для определенного гуида. Грубо говоря 1 запросом получить лайфтайм ХК и ДК. Или тут одним запросом не обойтись, а делать SELECT COUNT(*) FROM character_kill WHERE type = x AND guid = y для каждого типа убийств?
проверить не могу...
Код:
SELECT COUNT(*), `type` FROM character_kill WHERE guid=y GROUP BY `type`
  Ответить с цитированием
Пользователь сказал cпасибо:
hyperion (03.04.2011)
Старый 03.04.2011, 13:29   #60
hyperion
Новичок
 
Регистрация: 02.05.2010
Сообщений: 28
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 2 сообщениях
hyperion На верном пути
По умолчанию

Этот запрос вернет 2 строки, количество каждого типа. а можно чтоб он вернул 1 строку? Мне это нужно, 1 результат одним запросом. Точнее нужно было, проблему решил другим способом, с помощью сохранения нужных мне данных в таблицу)) Пробовал что-то вроде:
Код:
select c.*, (c.stored_honorable_kills + count(hk.guid)) as hk, (stored_dishonorable_kills + count(dk.guid)) as dk from characters c, character_kill hk, character_kill dk where c.guid = hk.guid and c.guid = dk.guid and hk.type = 1 and dk.type = 2;
, но запрос не работает, скуль виснет)

Последний раз редактировалось hyperion; 03.04.2011 в 13:32.
hyperion вне форума   Ответить с цитированием
Старый 03.04.2011, 14:37   #61
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от hyperion Посмотреть сообщение
. . . .
но запрос не работает, скуль виснет)
С лимитом попробовать - LIMIT 10 например в конце доставить?
Или там вообще полный привет? Я (простите) в сам запрос не смотрел.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 03.04.2011, 15:10   #62
BloodWarrior
Ученый
 
Аватар для BloodWarrior
 
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
BloodWarrior На верном пути
По умолчанию

hyperion

В скрипте на хонор который тут помогли мне доделать народ делал запрос с бд по многим параметрам, дисхоноры добавить там тоже в принципе можно..

http://ru-mangos.ru/showthread.php?t=3931
BloodWarrior вне форума   Ответить с цитированием
Старый 03.04.2011, 15:11   #63
ghostpast
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
ghostpast На верном пути
По умолчанию

Цитата:
Сообщение от hyperion Посмотреть сообщение
Этот запрос вернет 2 строки, количество каждого типа. а можно чтоб он вернул 1 строку? Мне это нужно, 1 результат одним запросом. Точнее нужно было, проблему решил другим способом, с помощью сохранения нужных мне данных в таблицу)) Пробовал что-то вроде:
Код:
select c.*, (c.stored_honorable_kills + count(hk.guid)) as hk, (stored_dishonorable_kills + count(dk.guid)) as dk from characters c, character_kill hk, character_kill dk where c.guid = hk.guid and c.guid = dk.guid and hk.type = 1 and dk.type = 2;
, но запрос не работает, скуль виснет)
зачем дважды указывать таблицу character_kill под разными именами в разделе from и такими же именами называть вычисляемые поля? Неудивительно, что MySQL упал под стол

Последний раз редактировалось ghostpast; 03.04.2011 в 15:15.
ghostpast вне форума   Ответить с цитированием
Старый 03.04.2011, 15:15   #64
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

есть предположение - что виснет из-за
Код:
where   c.guid = hk.guid and 
        c.guid = dk.guid and 
        hk.type = 1 and 
        dk.type = 2;
попробуйте объединить таблицы по левому соединению (left join)
__________________
Konctantin вне форума   Ответить с цитированием
Старый 03.04.2011, 17:20   #65
hyperion
Новичок
 
Регистрация: 02.05.2010
Сообщений: 28
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 2 сообщениях
hyperion На верном пути
По умолчанию

Просто как тогда взять к-во убийство для определенного типа, ведь в мускуле можно указать только 1 условие для выборки. Хотя это уже просто извращение, 3 запросами проще. Спасибо за помощь. Виснет даже при limit 1.
hyperion вне форума   Ответить с цитированием
Старый 03.04.2011, 18:53   #66
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от hyperion Посмотреть сообщение
Просто как тогда взять к-во убийство для определенного типа, ведь в мускуле можно указать только 1 условие для выборки. Хотя это уже просто извращение, 3 запросами проще. Спасибо за помощь. Виснет даже при limit 1.
дашь дамп characters напишу правильный запрос...серва то у меня нет, не на чем тестить даже запросы
  Ответить с цитированием
Старый 03.04.2011, 21:16   #67
hyperion
Новичок
 
Регистрация: 02.05.2010
Сообщений: 28
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 2 сообщениях
hyperion На верном пути
По умолчанию

Уже не надо, дальнейшее обсуждение идет чисто из интереса к построению запросов. А выборку обошел сохранением необходимых мне данных в ядре MZ)
hyperion вне форума   Ответить с цитированием
Старый 03.04.2011, 22:43   #68
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от hyperion Посмотреть сообщение
Уже не надо, дальнейшее обсуждение идет чисто из интереса к построению запросов. А выборку обошел сохранением необходимых мне данных в ядре MZ)
PHP код:
SELECT  `guid`, COUNT(*) as Ukill , (SELECT COUNT(*)  FROM character_kill  WHERE guid=AND type 1) as Hkill FROM character_kill WHERE guid=AND type 0
ну городить огороды тоже ненадо
  Ответить с цитированием
Пользователь сказал cпасибо:
hyperion (04.04.2011)
Старый 04.04.2011, 07:51   #69
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Где virusav? Он бы подсказал с ходу!
KiriX вне форума   Ответить с цитированием
Старый 04.04.2011, 09:46   #70
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

умная мысля приходит опосля...
Код:
SELECT guid, SUM(`type`) as `HKill`, ( count(*) - SUM(`type`) )  as `UKill` from character_kill where guid = 1
  Ответить с цитированием
Пользователь сказал cпасибо:
hyperion (04.04.2011)
Старый 04.04.2011, 19:46   #71
hyperion
Новичок
 
Регистрация: 02.05.2010
Сообщений: 28
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 2 сообщениях
hyperion На верном пути
По умолчанию

О, круто, спасибо)
hyperion вне форума   Ответить с цитированием
Старый 17.04.2011, 18:52   #72
KNR
Гость
 
Сообщений: n/a
По умолчанию

Уделание вещей у заданных вендоров с заданным itemlevel и номером нипа.
  Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 12:14. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot