$out_arr = array();
while($hero2 = mysqli_fetch_assoc($hero1))
{
$time_now = strtotime($hero2['cron1']);
$time_need = strtotime($hero2['cron2']);
if($time_need>=$time_now ){
$t_s= date("H:i ",75600-($time_need-$time_now));
}
else
$t_s= date("H:i ",75600-($time_now-$time_need));
$out_arr[] = str_replace(":",".",$t_s);
}
echo "[".join(' ,', $out_arr).']';
SELECT shop_product.id, if(shop_product_skus.count >= 3, shop_product_skus.count, 0) as count
FROM shop_product
join shop_product_skus on shop_product.id = shop_product_skus.product_id
WHERE
shop_product.id IN (14770, 13287, 14160, 13906)
select country.country_id
from country
select c.country_id
from country c
select ctry.id
from country ctry
select *
from t as t1
join t as t2 on t1.user_id1 = t2.user_id2
AND t2.user_id1 = t1.user_id2
select count(*) as work_day_count --считаем, что осталось после отсечения выходных и праздников
from (SELECT distinct t1.*, t1.c1 + INTERVAL iterator.day DAY as dt_day
FROM (select STR_TO_DATE("01.10.2018", "%d.%m.%Y") c1, STR_TO_DATE("22.10.2018", "%d.%m.%Y") c2 union all
select STR_TO_DATE("22.10.2018", "%d.%m.%Y") c1, STR_TO_DATE("10.11.2018", "%d.%m.%Y") c2 ) t1 --таблица с проверяемыми интервалами
join (select @start_day := @start_day + 1 as day
from news, -- любая произвольная таблица с числом строк, больше чем ширина максимально возможного интервала дней, который можно рассмотреть этим запросом
(select @start_day := -1) init_day --инициализация переменной start_day
) iterator --итератор дней, ведет отсчет с 0 и до куда надо (до максимального интервала, который может быть)
on (t1.c1 + INTERVAL iterator.day DAY) <= t1.c2 --верхнее ограничение итератора
and (t1.c1 + INTERVAL iterator.day DAY) not in -- отсекаем выходные и праздники
(select STR_TO_DATE("06.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("07.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("13.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("14.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("20.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("21.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("27.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("28.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("03.10.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("04.11.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("10.11.2018", "%d.%m.%Y") c1 union all
select STR_TO_DATE("11.11.2018", "%d.%m.%Y") c1) -- тут делаем выборку выходных дней и праздников
order by dt_day ) a
select a.*
from (select d.id, d.tovar_id, d.sender_id, d.recipient_id, d.message,
case
when d.sender_id < d.recipient_id
then d.sender_id * 1000000 + d.recipient_id
else d.recipient_id * 1000000 + d.sender_id
end dialog_hold
from dialogs d
where d.tovar_id = :tovar_id
and (d.sender_id = :user_id or d.recipient_id = :user_id)
) a
order by a.tovar_id, a.dialog_hold, a.id
DELETE FROM videos WHERE id = ?
$ids = R::getAssoc('SELECT id FROM videos');
$videos = R::find( 'videos', 'id = ?', $ids );
SELECT *
FROM points p
WHERE sqrt(pow(p.x - :x, 2) + pow(p.y - :y, 2)) <= :r -- используем формулу определения расстояния между двумя точками, параметры запроса, которые нужно задать :x, :y, :r.
max_input_vars = 10000000000000000000000000000000000000
INSERT INTO you_table (expiration_date) VALUES (FROM_UNIXTIME('1526763600'))
SELECT UNIX_TIMESTAMP(expiration_date) FROM you_table
Select p.id as post_id, p.create_date as p_create_date, p.title as p_title, p.text as p_text,
img.id as img_id, img.name as img_name,
v.id as v_id, v.name as v_name
from posts p
left join images img on img.post_id = p.id
left join videos v on v.post_id = p.id
$out = [];
foreach($rows as $row)
{
$post = &$out[$row['POST_ID']]; //ссылка на элемент массива первого уровня - пост
$post['CREATE_DATE'] = $row['P_CREATE_DATE'];
$post['TITLE'] = $row['P_TITLE'];
$post['TEXT'] = $row['P_TEXT'];
if(!is_null($row['IMG_ID']))
{
$image = &$post['IMAGES'][$row['IMG_ID']]; //ссылка на элемент массива второго уровня - элемент массива изображений
$image['NAME'] = $row['IMG_NAME'];
}
if(!is_null($row['V_ID']))
{
$video = &$post['VIDEOS'][$row['V_ID']]; //ссылка на элемент массива второго уровня - элемент массива видео
$video['NAME'] = $row['V_NAME'];
}
}
$post = &$out[$row['POST_ID']];
$image = &$post['IMAGES'][$row['IMG_ID']];
$image['NAME'] = $row['IMG_NAME'];
$image['WIDTH'] = $row['IMG_WIDTH'];
$image['HEIGHT'] = $row['IMG_HEIGHT'];
$out[$row['POST_ID']]['IMAGES'][$row['IMG_ID']]['NAME'] = $row['IMG_NAME'];
$out[$row['POST_ID']]['IMAGES'][$row['IMG_ID']]['WIDTH'] = $row['IMG_WIDTH'];
$out[$row['POST_ID']]['IMAGES'][$row['IMG_ID']]['HEIGHT'] = $row['IMG_HEIGHT'];
select b.id, b.name, b.sum_value, b.max_date -- а в самом конечной выборке выбираем только первые номера нумерации строк от каждого человека
from ( select a.id, a.name, a.sum_value, a.max_date, -- в этом подзапросе нумеруем строки в пределах одного человека
@rank := IF(@name2 != a.name, 1, @rank + 1) as rnk,
@name2 := a.name
from (select t.id, t.name, -- в этом подзапросе находим сумму очков и максимум даты
@sum := IF(@name != name, value, @sum + value) as sum_value,
@max := IF(@name != name, date, @max) as max_date,
@name := name
from
(select 1 id, 'Вася' Name, 7 value, STR_TO_DATE('01.01.2018', '%d.%m.%Y') date union all
select 2 id, 'Вася' Name, 2 value, STR_TO_DATE('02.02.2018', '%d.%m.%Y') date union all
select 3 id, 'Петя' Name, 2 value, STR_TO_DATE('01.01.2018', '%d.%m.%Y') date union all
select 4 id, 'Вова' Name, 2 value, STR_TO_DATE('01.01.2018', '%d.%m.%Y') date ) t, --исходные данные в виде таблицы t
(select @max := 0, @sum := 0, @name := '') p
order by t.name, date desc
) a,
(select @rank := 1, @name2 := '') p2
order by a.name, a.sum_value desc
) b where b.rnk = 1
order by b.id, b.name
update tab1 t1, tab2 t2 // таблицы, участвующие в Update
set t1.key = ? // устанавливаем параметр key, только непонятно, что задаем
where t1.id = t2.id // соответствие записей по первичным ключам
update tab1 t1, tab2 t2 // таблицы, участвующие в Update
set t1.key = ? // устанавливаем параметр key, только непонятно, что задаем
where t1.SecondName = t2.SecondName // допустим, пусть будет обновление key у тех записей, у которых есть полное соответствие атрибутов.
and t1.LastName = t2.LastName
and t1.ThirdName = t2.ThirdName
ALTER TABLE test2.board ADD data_razm datatime null AFTER moder;
ALTER TABLE test2.board ADD ip tinytext null AFTER data_razm;
update test2.board t2b, test.board tb
set t2b.data_razm = tb.data_razm,
t2b.ip = tb.ip
where t2b.id = tb.id
$sql = "insert into table_name(name) value('".$str_param."')";
$sql = "insert into table_name(name) value(:param1)"; //текст запроса с метками для вставки параметров;
$prep_sql = $sqlconnect->prepare($sql); //подготовка SQL-запроса, фактически, синтаксический разбор и выявление меток, куда вставлять параметры, проверка ошибок;
$prep_sql->bindParam('param1', $str_param, STRING_TYPE); //связываем параметры с метками в запросе, проверяем тип входного параметра;
$prep_sql->execute(); //выполняем запрос