Loading...
PHP/MySQL | Вопросы экспертам по MySQL

2. Как в этот запрос засунуть условие:

ЕСЛИ

hp + (unix_timestamp(now()) - hp_up) / 12

БОЛЬШЕ

hp_max

ТО

hp = hp_max

???

*CRAZY*

кури процедуры и функции
ps но мое мнение, что лучше средствами php
Dizzy221 (10.01.2019 в 13:25)

2. Как в этот запрос засунуть условие:

ЕСЛИ

hp + (unix_timestamp(now()) - hp_up) / 12

БОЛЬШЕ

hp_max

ТО

hp = hp_max

???

*CRAZY*

кури процедуры и функции
ps но мое мнение, что лучше средствами php


средствами php выходит мне нужно сначала определить массив юзера, потом сравнивая показатели сделать запись в БД

И ТЕПЕРЬ, чтобы мне вывести изменённые (самые свежие) данные, то мне нужно ПЕРЕОПРЕДЕЛИТЬ массив юзера

итого - имеем 3 запроса к БД + php
PhpStorm, можно сделать класс пользователя ) тогда у тебя на все выполнение скрипта обойдется 2 запроса, чтение данных в класс в начале работы и запись данных в БД при завершении работы.
Сибирский (10.01.2019 в 13:34)
PhpStorm, можно сделать класс пользователя ) тогда у тебя на все выполнение скрипта обойдется 2 запроса, чтение данных в класс в начале работы и запись данных в БД при завершении работы.


а вывод изменённых данных? :-D
PhpStorm, из класса, в классе они всегда будут свежие.
Сибирский (10.01.2019 в 13:36)
PhpStorm, из класса, в классе они всегда будут свежие.


1 берём данные - 5
2 изменяем данные - 5+1
3 выводим - 5
4 переопределяем данные и выводим - 6

от этого никуда не деться
PhpStorm (10.01.2019 в 13:42)
Сибирский (10.01.2019 в 13:36)
PhpStorm, из класса, в классе они всегда будут свежие.


1 берём данные - 5
2 изменяем данные - 5+1
3 выводим - 5
4 переопределяем данные и выводим - 6

от этого никуда не деться

А не проще формулу в PHP расписать? И полученные данные вывести и перезаписать?
1 Берем данные 5
2 Изменяем данные 5+1 (где 1 полученное число по формуле)
3 Выведем данные из формулы 6
4 Перезапишем данные.
PhpStorm (10.01.2019 в 13:31)
Dizzy221 (10.01.2019 в 13:25)

2. Как в этот запрос засунуть условие:

ЕСЛИ

hp + (unix_timestamp(now()) - hp_up) / 12

БОЛЬШЕ

hp_max

ТО

hp = hp_max

???

*CRAZY*

кури процедуры и функции
ps но мое мнение, что лучше средствами php


средствами php выходит мне нужно сначала определить массив юзера, потом сравнивая показатели сделать запись в БД

И ТЕПЕРЬ, чтобы мне вывести изменённые (самые свежие) данные, то мне нужно ПЕРЕОПРЕДЕЛИТЬ массив юзера

итого - имеем 3 запроса к БД + php

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

upd 3 запроса к бд это не есть много для одной отправки, это ничтожно мало
________
посл. ред. 10.01.2019 в 13:58; всего 1 раз(а); by Dizzy221
TuT (10.01.2019 в 13:56)
PhpStorm (10.01.2019 в 13:42)
Сибирский (10.01.2019 в 13:36)
PhpStorm, из класса, в классе они всегда будут свежие.


1 берём данные - 5
2 изменяем данные - 5+1
3 выводим - 5
4 переопределяем данные и выводим - 6

от этого никуда не деться

А не проще формулу в PHP расписать? И полученные данные вывести и перезаписать?
1 Берем данные 5
2 Изменяем данные 5+1 (где 1 полученное число по формуле)
3 Выведем данные из формулы 6
4 Перезапишем данные.


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

проще сразу выводить данные и на их основании строить логику
PhpStorm (10.01.2019 в 14:04)
TuT (10.01.2019 в 13:56)
PhpStorm (10.01.2019 в 13:42)
Сибирский (10.01.2019 в 13:36)
PhpStorm, из класса, в классе они всегда будут свежие.


1 берём данные - 5
2 изменяем данные - 5+1
3 выводим - 5
4 переопределяем данные и выводим - 6

от этого никуда не деться

А не проще формулу в PHP расписать? И полученные данные вывести и перезаписать?
1 Берем данные 5
2 Изменяем данные 5+1 (где 1 полученное число по формуле)
3 Выведем данные из формулы 6
4 Перезапишем данные.


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

проще сразу выводить данные и на их основании строить логику

Вот типа этого
$hp = ((hp + (unix_timestamp(now()) - hp_up) / 12) > hp_max ? hp_max : (hp + (unix_timestamp(now()) - hp_up) / 12));
Если я правильно понял.
Онлайн: 0
Время:
Gen. 0.1117
(c) Bym.Guru 2010-2025