SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 06/08/2019, 07:20 AM   #461
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by bgAndroid View Post
Как лучше всего сохранять данный код

PHP Code:
mysql_format(bdquerysizeof query,"UPDATE players SET test='%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i' WHERE id='%i' LIMIT 1",
test[0],test[1],test[2],test[3],test[4],test[5],test[6],test[7],test[8],test[9],test[10],test[11],test[12],test[13], 1); 
Это уже не раз обсуждалось, каждое значение в отдельной ячейке.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 06/08/2019, 02:25 PM   #462
cm666
Huge Clucker
 
Join Date: Jul 2012
Posts: 468
Reputation: 8
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Это уже не раз обсуждалось, каждое значение в отдельной ячейке.
Чем это лучше ?
cm666 is offline   Reply With Quote
Old 06/08/2019, 08:28 PM   #463
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by cm666 View Post
Чем это лучше ?
Начинаем с этого: Нормальная форма
И продолжаем тут
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 28/08/2019, 02:11 AM   #464
gensek4
Big Clucker
 
Join Date: Jan 2015
Posts: 147
Reputation: 0
Default Re: MySQL (F.A.Q.)

Есть 3 таблицы

Таблица account
- id
- name
- geton_date

Таблица admin
- admin_id
- level
- vigs

Таблица online
- account_id
- date
- online_sec
- afk_sec

Нужно в мониторинге вывести ник админа (account.name), его уровень (admin.level), его выговоры (admin.vigs), последний вход (account.geton_date) и его онлайн в минутах за последний день (online.online_sec).

Никак неполучается составить такой сложный запрос
gensek4 is offline   Reply With Quote
Old 28/08/2019, 06:46 AM   #465
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by gensek4 View Post
Есть 3 таблицы

Таблица account
- id
- name
- geton_date

Таблица admin
- admin_id
- level
- vigs

Таблица online
- account_id
- date
- online_sec
- afk_sec

Нужно в мониторинге вывести ник админа (account.name), его уровень (admin.level), его выговоры (admin.vigs), последний вход (account.geton_date) и его онлайн в минутах за последний день (online.online_sec).

Никак неполучается составить такой сложный запрос
Зачем вам один сложный, сделайте маленькими подзапросами, это будет быстрей.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 29/08/2019, 11:35 AM   #466
gensek4
Big Clucker
 
Join Date: Jan 2015
Posts: 147
Reputation: 0
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Зачем вам один сложный, сделайте маленькими подзапросами, это будет быстрей.
А можете показать пример, как вы это предоставляете?
gensek4 is offline   Reply With Quote
Old 29/08/2019, 12:03 PM   #467
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by gensek4 View Post
А можете показать пример, как вы это предоставляете?
Если дату хранишь в unix формате то весь запрос выглядит так:
Code:
SELECT
	ac.name as name,
	ad.level as level,
	ad.vigs as vigs,
	FROM_UNIXTIME(ac.geton_date, '%m.%d.%Y %H:%i') as geton_date,
	TRUNCATE((
		SELECT SUM(o.online_sec)
		FROM online o
		WHERE
			o.account_id = ac.id
			AND o.date > UNIX_TIMESTAMP(CURDATE())
		GROUP BY o.account_id
	), 0) as online_sec
FROM admin ad
LEFT JOIN account ac 
	ON ac.id = ad.admin_id
ORDER BY
	ad.level as level DESC,
	ac.name as name
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 30/08/2019, 02:39 AM   #468
gensek4
Big Clucker
 
Join Date: Jan 2015
Posts: 147
Reputation: 0
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Если дату хранишь в unix формате то весь запрос выглядит так:
Потребовалось время, что бы понять, что вместо TRUNCATE предполагалось IFNULL)

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

Все также есть
таблица account
- id
- name
и таблица online
- account_id
- online_sec
- afk_sec

Last edited by gensek4; 30/08/2019 at 04:24 AM.
gensek4 is offline   Reply With Quote
Old 30/08/2019, 06:50 AM   #469
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by gensek4 View Post
Потребовалось время, что бы понять, что вместо TRUNCATE предполагалось IFNULL)
Эмм, нет, это разные функции и делают они разные вещи. В данном случае в TRUNCATE можно дополнить IFNULL.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 30/08/2019, 07:22 AM   #470
gensek4
Big Clucker
 
Join Date: Jan 2015
Posts: 147
Reputation: 0
Default Re: MySQL (F.A.Q.)

Quote:
Originally Posted by Stepashka View Post
Эмм, нет, это разные функции и делают они разные вещи. В данном случае в TRUNCATE можно дополнить IFNULL.
А что же делает эта функция? В документации к MySQL сказано что она логически схожа с DELETE.
gensek4 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[GameMode] Basic MySQL Account Script [MySQL R7, cache functions, easydialog, Whirlpool, salted passwords] ReneG Gamemode Scripts 70 02/03/2014 11:48 AM
[GameMode] MySQL CLEAN GAMEMODE [Whirlpool, MySQL BlueG R7, Cache, Ready Package (Windows)] GiamPy. Gamemode Scripts 13 13/09/2013 04:31 PM
BlueG MySQL plugin - Failed (plugins/mysql.so: undefined symbol: _Z13stringvprintfPKcPc) linuxthefish Plugin Development 10 13/07/2013 10:56 AM
[Tool/Web/Other] MySQL DB Manager - Easily manage your MySQL databases with this remote application fiki574 Tools and Files 13 22/07/2012 09:41 AM


All times are GMT. The time now is 08:30 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.