Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2010, 14:23   #1
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию Sql запросы

Делимся sql запросами.

Пак запросов от LLIbIcpEP на чистку базы:




Запрос аккаунты на которых нет персонажей:


Запрос удаляет вещь у всех персонажей(В место entry ставим ид пердмета):



Запрос удаляет вещь у всех торговцев, запрос по id (entry) вещи:




P.s Выкладываем свои запросы в базу которыми вы пользуетесь.

Последний раз редактировалось FreeBSD; 13.03.2010 в 18:42.
FreeBSD вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
KiriX (13.03.2010), Konctantin (28.03.2010), VinD (18.04.2010)
Старый 12.03.2010, 14:32   #2
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

поправьте ошибку:
('entry'');

'id_вещи';
__________________
Konctantin вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
FreeBSD (12.03.2010)
Старый 12.03.2010, 14:33   #3
Desperado
Гость
 
Сообщений: n/a
По умолчанию

Выводит людей, сделавших определённый квест

PHP код:
SELECT 
    cc
.namecc.levela.username 
FROM 
    characters
.`character_queststatuscq 
INNER JOIN 
    characters
.characters cc 
ON 
    cc
.guid cq.guid 
INNER JOIN 
    realmd
.account a 
ON 
    a
.id cc.account 
WHERE 
    quest 
xxx
Когда выполняли квест

PHP код:
SELECT 
    cc
.namecc.levela.usernamefrom_unixtime(cq.time)
FROM 
    characters
.`character_queststatus_dailycq
INNER JOIN 
    characters
.characters cc ON cc.guid cq.guid
INNER JOIN 
    realmd
.account a ON a.id cc.account
WHERE 
    cq
.quest xxx
ORDER BY 
    from_unixtime
(cq.timeDESC
LIMIT 0 
300
Выводит гм онлайн

PHP код:
SELECT 
    c
.namec.class, c.racea.gmlevel 
FROM 
    characters
.characters c 
INNER JOIN 
    realmd
.account a 
ON 
    a
.id c.account 
WHERE 
    a
.gmlevel != && c.online 1

Последний раз редактировалось Konctantin; 12.03.2010 в 14:48. Причина: Привел код в читабельный вид
  Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
FreeBSD (12.03.2010), Gerald (16.04.2010), Shadez (21.03.2010)
Старый 12.03.2010, 14:52   #4
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Убедительная просьба:
Если выкладываете участок кода (как пример) пожалуйста не пишите его 1 строкой,
тот кому он понадобится, должен в первую очередь понимать что и к чему, а не тупо его копировать (во избежания пустых вопросов) .
Желательно делать комментарии в самом коде, поверьте толку от такого примера будет куда больше.
__________________
Konctantin вне форума   Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
FreeBSD (12.03.2010), mozilla (12.03.2010), tempura (28.10.2010), Vladimir (19.05.2010), Кот ДаWINчи (18.05.2010)
Старый 12.03.2010, 15:01   #5
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

Нужны запросы:

1)Удаление персонажей которые не привязаны к аккаунту.
2)удаление всех лишних записей после удаления персонажей.
FreeBSD вне форума   Ответить с цитированием
Старый 12.03.2010, 16:02   #6
mozilla
Новичок
 
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
mozilla На верном пути
По умолчанию

1.
PHP код:
DELETE FROM 
    
`characters`.`characters
WHERE 
    
`accountNOT IN (
    
SELECT id 
        FROM 
`realmd`.`account`
    ); 
2. а вообще вот

Последний раз редактировалось Konctantin; 12.03.2010 в 16:30. Причина: читабельный вид
mozilla вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
FreeBSD (12.03.2010)
Старый 12.03.2010, 17:11   #7
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

Код:
ERROR 1206 : The total number of locks exceeds the lock table size
как избавиться от такой ошибки...? может можно сделать количество запросов чтоб не превышало..?

Вот на этих запросах выдает:
Код:
DELETE `character_account_data`.* 
     FROM `character_account_data` 
         LEFT JOIN `characters` 
         ON `character_account_data`.`guid` = `characters`.`guid` 
     WHERE `characters`.`guid` IS NULL;

DELETE `character_achievement`.* 
     FROM `character_achievement` 
        LEFT JOIN `characters` 
        ON `character_achievement`.`guid` = `characters`.`guid` 
     WHERE `characters`.`guid` IS NULL;

Последний раз редактировалось FreeBSD; 12.03.2010 в 17:15.
FreeBSD вне форума   Ответить с цитированием
Старый 12.03.2010, 17:23   #8
mozilla
Новичок
 
Регистрация: 09.03.2010
Сообщений: 12
Сказал(а) спасибо: 4
Поблагодарили 9 раз(а) в 4 сообщениях
mozilla На верном пути
По умолчанию

Как решение нашел увеличить размер innodb_buffer_pool_size в /etc/my.cnf

Тип обоих таблиц InnoDB, и если вы прочли статью на утдб, то там написано:
Цитата:
запросы пройдут только на mysql 5.1 и выше, и актуальны только для MyISAM
Так что решайте сами, что делать.

Последний раз редактировалось mozilla; 12.03.2010 в 17:30.
mozilla вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
FreeBSD (12.03.2010)
Старый 13.03.2010, 14:19   #9
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Просьба к автору первого поста - собирать всё в первый пост и, желательно, под спойлер (на этом форуме его функцию выполняет тэг оффтопа), над спойлером краткое описание - что там.
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
FreeBSD (13.03.2010)
Старый 13.03.2010, 17:52   #10
Keni
Гость
 
Сообщений: n/a
По умолчанию

Запрос аккаунты на которых нет персонажей:
Код:
#Выборка
SELECT * FROM `realmd`.`account` where `id` not in (select account from `mangos`.`character`);
#Удаление:
DELETE FROM `realmd`.`account` where `id` not in (select account from `mangos`.`character`);
Старое помойму

Новое:
Код:
#Выборка
SELECT * FROM `realmd`.`account` where `id` not in (select account from `characters`.`characters`);
#Удаление:
DELETE FROM `realmd`.`account` where `id` not in (select account from `characters`.`characters`);
  Ответить с цитированием
Старый 13.03.2010, 18:43   #11
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

Спасибо, исправил.
FreeBSD вне форума   Ответить с цитированием
Старый 18.03.2010, 17:18   #12
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

подскажите, как запросом сделать все логины(аккаунты) в базе большим регистром? Например был plauer, после запроса станет PLAUER.
FreeBSD вне форума   Ответить с цитированием
Старый 18.03.2010, 17:26   #13
Desperado
Гость
 
Сообщений: n/a
По умолчанию

Код:
UPDATE realmd.account SET username = UPPER(username)
p.s. чтобы остальные не задавали подобных вопросов: изменяет регистр всех записей в выбранном поле.

Последний раз редактировалось Desperado; 18.03.2010 в 17:58.
  Ответить с цитированием
Пользователь сказал cпасибо:
FreeBSD (18.03.2010)
Старый 19.03.2010, 02:04   #14
Rage Hunter
Гость
 
Сообщений: n/a
По умолчанию

Не коректное! Много мусора останется!
Код:
DELETE FROM `character_inventory` WHERE `item_template` IN ('entry');
Коректное!
Код:
DELETE FROM `item_instance` WHERE `guid` in (SELECT item FROM `character_inventory` WHERE item_template IN ('entry');
DELETE FROM `character_inventory` WHERE item_template IN ('entry');
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
fedr (24.05.2010)
Старый 19.03.2010, 21:39   #15
pdx15
Новичок
 
Регистрация: 19.03.2010
Сообщений: 22
Сказал(а) спасибо: 1
Поблагодарили 6 раз(а) в 2 сообщениях
pdx15 На верном пути
По умолчанию

вайпаем шмот, с инвенторя, гб, банка, почты итд
Код:
DELETE FROM item_instance WHERE CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', 4), ' ', -1) AS UNSIGNED)=номер шмотки;
DELETE FROM item_instance WHERE CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', 4), ' ', -1) AS UNSIGNED)=номер шмотки;
DELETE FROM `auctionhouse` where `itemguid` not in (SELECT `guid` FROM `item_instance`);
DELETE FROM `character_inventory` where `item` not in (SELECT `guid` FROM `item_instance`);
DELETE FROM `guild_bank_item` where `item_guid` not in (SELECT `guid` FROM `item_instance`);
DELETE FROM `mail_items` where `item_guid` not in (SELECT `guid` FROM `item_instance`);
DELETE FROM `character_gifts` where `item_guid` not in (SELECT `guid` FROM `item_instance`);
удаляем мусор от удалённых чаров
Код:
DELETE FROM `item_instance` WHERE `guid` NOT IN (SELECT `itemguid` FROM `auctionhouse`) AND `guid` NOT IN (SELECT `item_guid` FROM `character_gifts`) AND `guid` NOT IN (SELECT `item` FROM `character_inventory`) AND `guid` NOT IN (SELECT `item_guid` FROM `guild_bank_item`) AND `guid` NOT IN (SELECT `item_guid` FROM `mail_items`);
pdx15 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 28.03.2010, 19:30   #16
Щачло
Гость
 
Сообщений: n/a
По умолчанию

Кстате о запросе "Пак запросов от LLIbIcpEP на чистку базы:"

выполнил я его и как по волшебной палочке сервер крашиться каждые 4-5 минут ,ну в общем постоянно.
хотя посмотрел и выглядит он на отлично.
  Ответить с цитированием Полученное предупреждение
Старый 28.03.2010, 20:31   #17
ice74
Гость
 
Сообщений: n/a
По умолчанию

а догадаться мы сами должны почему, так видимо?
логи где?
крашдампы где?
  Ответить с цитированием
Старый 29.03.2010, 16:30   #18
DeusModus
Администратор
 
Аватар для DeusModus
 
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
DeusModus отключил(а) отображение уровня репутации
По умолчанию

Есть некая таблица

id | sessionID | somethingID | time | ip

Данные заносятся при каждом посещении пользователем определенной страницы. Простой insert.
Раз в N мне необходимо считывать и обрабатывать информацию.
Случаются вот такие ситуации:
1 session123 666 time 127.0.0.1
2 session222 666 time 127.0.0.1

Можно ли как-то удалить подобные дубликаты? Из этой строки, я бы хотел оставить либо первый, либо второй вариант.

Т.е. убрать дубли по sessionID-somethingID и ip-somethingID.
DeusModus вне форума   Ответить с цитированием
Старый 29.03.2010, 20:21   #19
ghostpast
Пользователь
 
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 11
Поблагодарили 17 раз(а) в 11 сообщениях
ghostpast На верном пути
По умолчанию

Цитата:
Сообщение от DeusModus Посмотреть сообщение
Есть некая таблица

id | sessionID | somethingID | time | ip

Данные заносятся при каждом посещении пользователем определенной страницы. Простой insert.
Раз в N мне необходимо считывать и обрабатывать информацию.
Случаются вот такие ситуации:
1 session123 666 time 127.0.0.1
2 session222 666 time 127.0.0.1

Можно ли как-то удалить подобные дубликаты? Из этой строки, я бы хотел оставить либо первый, либо второй вариант.

Т.е. убрать дубли по sessionID-somethingID и ip-somethingID.
может имеет смысл создать в таблице уникальные сложные ключи (sessionID, somethingID) и/или (ip, somethingID) - в этом случае вставить одинаковые значения пары (sessionID, somethingID) и/или (ip, somethingID) не получится, а значит не придется удалять эти дубликаты.
или требуется удалить уже существующие дубликаты?
ghostpast вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
DeusModus (30.03.2010)
Старый 30.03.2010, 13:47   #20
DeusModus
Администратор
 
Аватар для DeusModus
 
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
DeusModus отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от ghostpast Посмотреть сообщение
может имеет смысл создать в таблице уникальные сложные ключи (sessionID, somethingID) и/или (ip, somethingID) - в этом случае вставить одинаковые значения пары (sessionID, somethingID) и/или (ip, somethingID) не получится, а значит не придется удалять эти дубликаты.
или требуется удалить уже существующие дубликаты?
Да, в таблице уже 20-30 тысяч записей.
DeusModus вне форума   Ответить с цитированием
Старый 01.04.2010, 23:36   #21
gR4mm
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от DeusModus Посмотреть сообщение
Есть некая таблица

id | sessionID | somethingID | time | ip

Данные заносятся при каждом посещении пользователем определенной страницы. Простой insert.
Раз в N мне необходимо считывать и обрабатывать информацию.
Случаются вот такие ситуации:
1 session123 666 time 127.0.0.1
2 session222 666 time 127.0.0.1

Можно ли как-то удалить подобные дубликаты? Из этой строки, я бы хотел оставить либо первый, либо второй вариант.

Т.е. убрать дубли по sessionID-somethingID и ip-somethingID.
Получить последние записи из дублей можно так:

если считать что запись в таблице можно определить по полям somethingID, ip

Код:
select max(id)
from sometab t
group by somethingID, ip
having count(id) > 1
  Ответить с цитированием
Старый 16.04.2010, 06:27   #22
leeas
Гость
 
Сообщений: n/a
По умолчанию

Народ, извиняюсь, может быть не там вопрос задаю.

Работаю с Личным Кабинетом. Необходимо создать чара в базе. Но нет возможности "завести" сервер.

Если это возможно, можете привести sql запрос на создание в базе персонажа 1 лвл? Благодарю заранее.
  Ответить с цитированием
Старый 29.03.2010, 20:29   #23
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

судя по всему - это статистика. В статистике невозможно поставить уникальные значения на поля.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
DeusModus (30.03.2010)
Старый 30.03.2010, 13:52   #24
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Создать временную таблицу, скопировать distinct записи и потом сделать truncate нашей таблице и переписать данные с временной таблицы.
__________________
Konctantin вне форума   Ответить с цитированием
Старый 30.03.2010, 13:55   #25
DeusModus
Администратор
 
Аватар для DeusModus
 
Регистрация: 07.03.2010
Адрес: Питер.
Сообщений: 69
Сказал(а) спасибо: 66
Поблагодарили 102 раз(а) в 15 сообщениях
Записей в дневнике: 12
DeusModus отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от Konctantin Посмотреть сообщение
Создать временную таблицу, скопировать distinct записи и потом сделать truncate нашей таблице и переписать данные с временной таблицы.
id | sessionID | somethingID | time | ip
Ни по одному из этих столбцов нельзя выбрать только DISTINCT сохраняя корректность данных.
Да и смысл в том, что для каждого пользователя присутствует несколько записей. Удалить же нужно только дублирующие по смыслу.
Или я что-то не понял?
DeusModus вне форума   Ответить с цитированием
Старый 01.04.2010, 18:26   #26
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

помогите из этого запроса

Код:
SELECT * FROM `character_inventory` WHERE (`item_template`=xxx);
сделать чтоб выводил ник персонажа.


во, сделал, только не знаю правильно или нет, но работает

Код:
SELECT
    `characters`.`name`
  FROM `characters`, `character_inventory`
  WHERE `characters`.`guid` = `character_inventory`.`guid` AND `character_inventory`.`item_template` = 'xxx';

Последний раз редактировалось FreeBSD; 01.04.2010 в 18:35.
FreeBSD вне форума   Ответить с цитированием
Старый 01.04.2010, 23:30   #27
gR4mm
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от FreeBSD Посмотреть сообщение
во, сделал, только не знаю правильно или нет, но работает

Код:
SELECT
    `characters`.`name`
  FROM `characters`, `character_inventory`
  WHERE `characters`.`guid` = `character_inventory`.`guid` AND `character_inventory`.`item_template` = 'xxx';
ну тогда уж лучше так

Код:
select c.name
from characters c
	join character_inventory ci on ci.guid = c.guid
where ci.item_template = 23345;
  Ответить с цитированием
Старый 16.04.2010, 08:20   #28
Anti
Пользователь
 
Аватар для Anti
 
Регистрация: 12.03.2010
Адрес: Беларусь
Сообщений: 54
Сказал(а) спасибо: 8
Поблагодарили 24 раз(а) в 17 сообщениях
Записей в дневнике: 1
Anti На верном пути
Отправить сообщение для Anti с помощью ICQ Отправить сообщение для Anti с помощью Skype™
По умолчанию

Персонажей лучше создовать через игру, в противном случая надо строго копировать методику создания и писать какой-то скрипт или нечто похожее. Иначе ничего не получиться.

ЗЫ А какой смысл создавать перса, если вы не можете поднять сервер?
Anti вне форума   Ответить с цитированием
Старый 09.05.2010, 01:46   #29
VinD
Пользователь
 
Аватар для VinD
 
Регистрация: 08.03.2010
Адрес: Ukraine
Сообщений: 41
Сказал(а) спасибо: 18
Поблагодарили 56 раз(а) в 20 сообщениях
VinD Скоро придёт к известности
По умолчанию

У меня есть вопрос. Вот например есть такой запрос
SELECT * FROM `honor` WHERE `kills` >0
А как сделать так чтоб сначала проверялось наличие таблицы honor, и только потом осуществлялась выборка из неё. Пробовал что-то вроде
IF EXISTS (SELECT * FROM `honor` WHERE `kills` >0)
но так не работает.
__________________
Mangos 10505 + YTDB 564 + SD2 1826
VinD вне форума   Ответить с цитированием
Старый 10.05.2010, 00:20   #30
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от VinD Посмотреть сообщение
У меня есть вопрос. Вот например есть такой запрос
SELECT * FROM `honor` WHERE `kills` >0
А как сделать так чтоб сначала проверялось наличие таблицы honor, и только потом осуществлялась выборка из неё. Пробовал что-то вроде
IF EXISTS (SELECT * FROM `honor` WHERE `kills` >0)
но так не работает.
Код:
SELECT COUNT(*)
FROM information_schema.tables 
WHERE table_schema = 'mangos' 
AND table_name = 'creature';
если результат 0, таблицы creature нет
  Ответить с цитированием
Пользователь сказал cпасибо:
DeusModus (28.05.2010)
Старый 10.05.2010, 17:31   #31
Incognito
папа и мама IGMA
 
Аватар для Incognito
 
Регистрация: 08.05.2010
Сообщений: 27
Сказал(а) спасибо: 10
Поблагодарили 24 раз(а) в 9 сообщениях
Incognito На верном пути
По умолчанию

Как сделать ограничение на ввод цифр? типа от 2 до 5, от 1 до 3 и т.п.?
Incognito вне форума   Ответить с цитированием
Старый 10.05.2010, 19:16   #32
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Incognito Посмотреть сообщение
Как сделать ограничение на ввод цифр? типа от 2 до 5, от 1 до 3 и т.п.?
тип SET или ENUM вполне подходит...хотя все зависит от тз. Желательно такое до попадания в базу учитывать....
  Ответить с цитированием
Старый 14.05.2010, 12:00   #33
feanorco
Гость
 
Сообщений: n/a
По умолчанию

Суть проблемы: есть необходимость с сайта отправить почту игроку 123 с итемом, ну допустим,ИД 123456 и количество 15 штук..... ну и текстом... "здраствуй вася"
чет еще смутно понимаю как почта работает
подсобите плз
  Ответить с цитированием
Старый 14.05.2010, 16:34   #34
FreeBSD
RMDC Donator
 
Аватар для FreeBSD
 
Регистрация: 07.03.2010
Сообщений: 42
Сказал(а) спасибо: 20
Поблагодарили 12 раз(а) в 5 сообщениях
FreeBSD На верном пути
По умолчанию

запросом в базу это не как не сделать, если ток через telnet... есть голосовалки для пабликов, отдуда повыдирай нужные коды и будет тебе счастье)
FreeBSD вне форума   Ответить с цитированием
Старый 14.05.2010, 23:04   #35
CruncH
Пользователь
 
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
CruncH На верном пути
Отправить сообщение для CruncH с помощью ICQ
По умолчанию

Цитата:
Сообщение от FreeBSD Посмотреть сообщение
запросом в базу это не как не сделать, если ток через telnet... есть голосовалки для пабликов, отдуда повыдирай нужные коды и будет тебе счастье)
Разве? Насколько помню это было реализовано в MMFPM (мини менеджер фор чего то там мангос), так что это сделать можно, только запрос будет не маленький и придется заполнять 2 таблицы и не 1 раз.
__________________
CruncH вне форума   Ответить с цитированием
Старый 14.05.2010, 22:07   #36
feanorco
Гость
 
Сообщений: n/a
По умолчанию

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

Сделать через запрос возможно, но слишком много возни, большой риск уронить сервер. ИМХО telnet в Мангосе есть, по этому юзай telnet. Тем более там буквально несколько строк когда нужно чтобы отправить самую заковыристую команду. Веселее всего шутдаун через сайт ставить
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет
Hantet вне форума   Ответить с цитированием
Старый 18.05.2010, 21:16   #38
CruncH
Пользователь
 
Регистрация: 07.03.2010
Адрес: Норильск
Сообщений: 51
Сказал(а) спасибо: 28
Поблагодарили 31 раз(а) в 15 сообщениях
Записей в дневнике: 3
CruncH На верном пути
Отправить сообщение для CruncH с помощью ICQ
По умолчанию

С телнетом через сторонние либы не возился, и думаю там много подводных камней.
Но есть же SOAP специально прикрученный для этого дела.
Для Php рабочий пример лежит в сорцах мангоса mangos/contrib/soap/example.php
нужно только поставить\включить библиотеку.
Для питона пример работы был описан тут в блоге.
__________________
CruncH вне форума   Ответить с цитированием
Старый 19.05.2010, 07:25   #39
Lightunit
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
Lightunit На верном пути
Сообщение

Выводит список вещей, которые не привязаны к письму.
PHP код:
SELECT FROM `mail_itemswhere `mail_idnot in (select `idfrom `mail`); 
Отправляет вещи игроку, которые не привязаны к письму.
PHP код:
INSERT 
INTO 
`mail
SELECT `mail_id`, '0''61''0''0', `receiver`, 'System repaired!''Message generate System!''1'unix_timestamp() + 3600 24 30unix_timestamp(), '0''0''0'
FROM `mail_items
WHERE `mail_idnot in (SELECT `idFROM `mail`)
GROUP BY `mail_id
Lightunit вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Hantet (20.05.2010)
Старый 25.05.2010, 16:57   #40
qazarius
Гость
 
Сообщений: n/a
По умолчанию

Подскажите пожалуйста запрос который выводил бы список персонажей и их ip
  Ответить с цитированием
Ответ


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

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



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


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