<?php
// считаем, что данные пришли по POST-у
if(isset($_POST['submit'])) // проверяем, что приехали данные формы по submit, в кнопке сабмита атрибут name должен иметь значение submit
{
$inserted_user_count = 0;
if(isset($_POST['selected_users'])) // присутствуют отмеченные пользователи
{
$pdo = new PDO(параметры подключения к базе);
foreach($_POST['selected_users'] as $selected_user_id)
{
$stmt = $pdo->prepare('insert into ваша таблица (атрибуты таблицы) values (значения атрибутов таблицы, кроме user_id, :user_id)');
$stmt->bindParam(':user_id', $selected_user_id, PDO::PARAM_INT);
// еще байндим какие-то параметры у запроса, если есть плейсхолдеры, кроме :user_id.
$stmt->execute(); // наконец, выполняем запрос
$pdo->commit(); // фиксируем изменения в базе данных, если у вас соединение открыто не в режиме автокамита
$inserted_user_count++;
}
$pdo = null; // закрываем соединение с базой
}
echo 'Обработано пользователей: '.$inserted_user_count;
}
?> select '10' Name union
select '1' Name union
select '20' Name union
select '2' Name
order by length(Name), Name select A.*
from (select t.col1, t.col2, ..., t.colN from t -- выборка для "не по умолчанию"
union all
select def_col1, def_col2, ... def_colN from dual -- строка значений по умолчанию
) A
where rownum = 1 -- выбираем только первую строку, неважно из чегоSELECT id,
CASE
WHEN price > 10000 AND price < 11000 THEN 'Economy'
WHEN price >= 20000 AND price <= 30000 THEN 'PremiumEconomy'
WHEN price > 100000 THEN 'Business'
END as service_class, price
FROM tickets
where CASE
WHEN price > 10000 AND price < 11000 THEN 'Economy'
WHEN price >= 20000 AND price <= 30000 THEN 'PremiumEconomy'
WHEN price > 100000 THEN 'Business'
END is not nullSELECT id,
CASE
WHEN price > 10000 AND price < 11000 THEN 'Economy'
WHEN price >= 20000 AND price <= 30000 THEN 'PremiumEconomy'
WHEN price > 100000 THEN 'Business'
END as service_class, price
FROM tickets
where (price > 10000 AND price < 11000) -- 'Economy'
or (price >= 20000 AND price <= 30000) -- 'PremiumEconomy'
or (price > 100000) -- 'Business'select *
from verbs
order by darg-wselect *
from verbs
order by idselect *
from verbs
order by position -- дополнительное поле, в которое будете сами или программно вбивать порядок сортировкиselect *
from verbs
order by case when id = 100 then 0 else 1 end -- даем записи id=100 наивысший приоритет, в любом состоянии списка она будет на 1 месте!
, id -- остальные записи отсортируются в порядке добавленияFROM views v JOIN memes m JOIN comments cFROM views v, memes m, comments cSELECT (select COUNT(v.id) from views v where v.user_id = u.user_id ) AS просмотры,
(select COUNT(DISTINCT v.meme_id) from views v where v.user_id = u.user_id) AS [уникальные просмотры],
(select COUNT(m.id) from memes m where m.user_id = u.user_id) AS [выложено мемов],
(select COUNT(c.id) from comments c where c.user_id = u.user_id) AS [написано комментариев]
FROM users u -- лучше связаться с таблицей users
WHERE u.user_id = 1select rownum, B.*
from (select A.*
from (SELECT v.user_id,
u.nickname,
COUNT(DISTINCT v.meme_id) as meme_count
FROM views as v
join users u on u.id = v.user_id
GROUP BY v.user_id, u.nickname) A
order by A.meme_count desc) B select col1, -- извлекли содержимое колонки - вполне тривиальное действие
col2 from table1select (col1 + col2) * 10 as result, -- а тут уже применили ариф. операции - написали выражение
col2 from table1я хотел сделать отдельный параметр в бд, который проверяется
заменить в ней значение,
select
-- вариант 1
to_char(sysdate, 'DD.MM.YYYY' || decode(sysdate - trunc(sysdate), 0, '', ' HH24:MI:SS')) as your_format_date_1,
-- вариант 2
case
when sysdate - trunc(sysdate) > 0
then to_char(sysdate, 'DD.MM.YYYY HH24:MI:SS')
else to_char(sysdate, 'DD.MM.YYYY')
end as your_format_date_2
from dual; $stmt = $db->prepare("SELECT * FROM moya_tablitsa WHERE id = :metka_parametra_identifikatora");
$stmt->bindParam(':metka_parametra_identifikatora', 123);
$stmt->execute();$stmt = $db->prepare("SELECT * FROM moya_tablitsa WHERE id = ?");
$stmt->execute([123]);$stmt = $db->prepare("SELECT * FROM moya_tablitsa WHERE id = ?");
$stmt->bindParam(1, 123); // 1 - это номер метки, 123 - значение параметра
$stmt->execute(); Подскажите пожалуйста - в каком направлении думать.
Select w.`Код`, w.`Фамилия`, w.`Имя`, w.`Отчество`,
count(ch.*) as Child_Count -- кол-во детей
-- count(distinct ch.`Фамилия`, ch.`Имя`, ch.`Отчество`, ch.`Дата рождения`) as Child_Count -- кол-во детей по группе уникальных полей по таблице Дети, без использования идентификатора
from `Список` w
join `Дети` ch on ch.`КодСотрудника` = w.`Код`
group by w.`Код`, w.`Фамилия`, w.`Имя`, w.`Отчество` select psc.*,
pt1.`value` as `picture`,
pt2.`value` as `sort_pos`
from `pref_site_content` as psc
inner join `pref_site_tmplvar_contentvalues` as pt1 on pt1.`contentid` = psc.`id` and pt1.`tmplvarid` = 37
inner join `pref_site_tmplvar_contentvalues` as pt2 on pt2.`contentid` = psc.`id` and pt2.`tmplvarid` = 111
where psc.`id` not in (898, 899, 900, 902)
and (`template` = 40 and `published` = 1) -- тут, возможно, тоже можно добавить, если в таблицах поля одинаково названы // Вы определитесь:
$table = /* либо копите результат верстки в переменной table, а потом после обработки выводите все содержимое на строке N */
'
<tr>
<td>'. $trtd .'</td> //отрисовывает первым столбиком таблицы номер сотрудника в таблице бд
<td>'. $array[0]++ .'</td> //отрисовывает вторым столбиком таблицы имя сотрудника в таблице бд
'. // зачем тут перед for конкатенация ?
for ($td=1; $td<=$daysinmonth; $td++){
// Либо сразу выводите результат через echo, не накапливая ничего для вывода контента
echo '<td>тут какое-то значение, в будующем должен быть код с операторами if и т.д.</td>';}.' //отрисосывает оставшиеся столбцы в зависимости от кол-ва дней в месяце
</tr>';// если вы множите ячейки дней месяца, то наверное, строку таблицы нужно закрывать не в теле цикла?
/*строка N */ echo ($table); // вывод всего накопленного содержимого