function file_session_write($base, $deltaLastTime)
{
$id = session_id();
//текущее время
$CurrentTime = time();
//через какое время сессии удаляются
$LastTime = time() - $deltaLastTime;
$file = file($base);
$k = 0;
for ($i = 0; $i < sizeof($file); $i++) {
$line = explode("|", $file[$i]);
if ($line[1] > $LastTime) {
$ResFile[$k] = $file[$i];
$k++;
}
}
for ($i = 0; $i<sizeof($ResFile); $i++) {
$line = explode("|", $ResFile[$i]);
if ($line[0]==$id) {
$line[1] = trim($CurrentTime)."\n";
$is_sid_in_file = 1;
}
$line = implode("|", $line); $ResFile[$i] = $line;
}
$fp = fopen($base, "w");
for ($i = 0; $i<sizeof($ResFile); $i++) { fputs($fp, $ResFile[$i]); }
fclose($fp);
if (!$is_sid_in_file) {
$fp = fopen($base, "a-");
$line = $id."|".$CurrentTime."\n";
fputs($fp, $line);
fclose($fp);
}
return sizeof(file($base));
}
session_start();
// а тут просто вызываем функцию с какими угодно параметрами, сколько угодно раз
$result1 = file_session_write( "session1.txt", 30);
$result2 = file_session_write( "session2.txt", 86400);
echo 'res1='.$result1.'; res2='.$result2;
$conn = new mysqli("localhost", "y96360rs_a", "xR&O&&37", "y96360rs_a");
$sql = "UPDATE `admins` SET `login` = ?, `pass` = ?, `name` = ?, `role` = ? WHERE `id` = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssssi', $login, $pass, $name, $role, $id);
$id = $conn->insert_id;
if ( have_rows('whereblocks', $id) ) { // если найдены данные
// тут объявить переменную i = 5
while ( have_rows('whereblocks', $id) ) { the_row();?>
....
data-wow-delay="<? /*тут вывести текущее i*/ ?>s">
....
// тут прибавить к i 5
} // конец цикла while
} // конец if
// тут нужно создать болванку для исходящего xml документа с помощью XMLWriter.
// перед входом в цикл нужно создать болванку списка юзеров
while ($reader->read()):
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'm:items'){
//........
$UserFields = [];
$AcceptedPosition = [];
while($data->read()){
switch ($data->name){
// ....................
}
}
// считали свойства юзера во входящем документе, тут нужно создать элемент юзера в исходящем и закинуть туда значения из $UserFields, $AcceptedPosition
}
// закончили читать список юзеров, нужно закрыть список юзеров в исходящем доке.
// закрыть исходящий док
select *
from <таблица/соединенные таблицы для выборки товара> Tab1
where <условия фильтрации>
order by
case
when Tab1.Приоритетное_свойство = :входная_приоритетная_характеристика
then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
end desc,
<Другие условия сортировки (по дате добавления, имени и т.д.)>
select *
from <таблица/соединенные таблицы для выборки товара> Tab1
where <условия фильтрации>
order by
case
when Tab1.Приоритетное_свойство_1 = :входная_приоритетная_характеристика_1
then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
end
+ -- очки приоритетов складываем
case
when Tab1.Приоритетное_свойство_2 = :входная_приоритетная_характеристика_2
then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
end
+
-- ... и так далее все характеристики
desc, --
<Другие условия сортировки (по дате добавления, имени и т.д.)>
select *
from <таблица/соединенные таблицы для выборки товара> Tab1
where <условия фильтрации>
order by
case
when Tab1.Приоритетное_свойство_1 = :входная_приоритетная_характеристика_1
then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
end desc, -- эта более важная характеристика
case
when Tab1.Приоритетное_свойство_2 = :входная_приоритетная_характеристика_2
then 1 -- запись с приоритетным свойством получит повышенное очко для первичной сортировки
else 0 -- запись с неприоритетным свойством получит пониженное очко для первичной сортировки
end desc, -- эта менее важная характеристика
-- ... и так далее все характеристики
<Другие условия сортировки (по дате добавления, имени и т.д.)>
select *
from verbs
order by darg-w
select *
from verbs
order by id
select *
from verbs
order by position -- дополнительное поле, в которое будете сами или программно вбивать порядок сортировки
select *
from verbs
order by case when id = 100 then 0 else 1 end -- даем записи id=100 наивысший приоритет, в любом состоянии списка она будет на 1 месте!
, id -- остальные записи отсортируются в порядке добавления
$select = mysqli_query($conn, "SELECT * FROM employers WHERE username='$username' AND password='$password'");
$input = 'Привет мир!';
$input_len = mb_strlen($input);
$output = join('', array_map(function($index, $char) use ($input_len)
{
return $index > 1 && $index + 1 < $input_len ? '*' : $char;
}, array_keys(mb_str_split($input)), mb_str_split($input)
)
);
echo $output;
select e.*, ep.*, epa.*
from event_prop_array epa
join event_prop ep on ep.prop_id = epa.prop_id
join event e on e.event_id = epa.event_id
-- какие-то условия для поиска
where e.event_id = 1
and ep.prop_name = 'ads'