Получение разрешения экрана с помощью PHP

Вы создаете для каждой строки фиктивный столбец с именем type, применяя необходимое условие,
со значением 0 или 1 и суммируя по нему:

select t.username, sum(t.type) num_of_signed_docs from (
select a.username, 
case
  when event = 'reject' then 0
  when exists 
  (select 1 from audit where doc_id = a.doc_id and 
    datetime > a.datetime and event = 'reject')
  then 0
  else 1 end as type
from audit a
) t
group by t.username

См. демо для SQL Server
и демо для MySQL

Редактировать
[ 1111]

select a.username, count(distinct a.doc_id) num_of_signed_docs 
from audit a
where
  a.event = 'sign'
  and
  not exists (
    select 1 from audit where 
      doc_id = a.doc_id and datetime > a.datetime and event = 'reject'    
  )
group by a.username

См. Демонстрацию для SQL Server
и демонстрацию для MySQL

45
задан ashleedawg 1 May 2019 в 07:59
поделиться

6 ответов

Вы не можете сделать это с чистым PHP. Вы должны сделать это с помощью JavaScript. О том, как это сделать, написано несколько статей.

По сути, вы можете установить cookie или даже использовать Ajax для отправки информации в сценарий PHP. Если вы используете jQuery, вы можете сделать это примерно так:

jquery:

$(function() {
    $.post('some_script.php', { width: screen.width, height:screen.height }, function(json) {
        if(json.outcome == 'success') {
            // do something with the knowledge possibly?
        } else {
            alert('Unable to let PHP know what the screen resolution is!');
        }
    },'json');
});

PHP (some_script.php)

<?php
// For instance, you can do something like this:
if(isset($_POST['width']) && isset($_POST['height'])) {
    $_SESSION['screen_width'] = $_POST['width'];
    $_SESSION['screen_height'] = $_POST['height'];
    echo json_encode(array('outcome'=>'success'));
} else {
    echo json_encode(array('outcome'=>'error','error'=>"Couldn't save dimension info"));
}
?>

Все это действительно базовое, но оно должно вас куда-то привести. Однако обычно разрешение экрана - это не то, что вам нужно. Возможно, вас больше заинтересует размер фактического порта просмотра браузера, поскольку именно здесь отображается страница ...

55
ответ дан 26 November 2019 в 21:02
поделиться

Вот код JavaScript: (index.php)

<script>
    var xhttp = new XMLHttpRequest();  
    xhttp.open("POST", "/sqldb.php", true);
    xhttp.send("screensize=",screen.width,screen.height);
</script>

Вот является Кодом PHP: (sqldb.php)

$data = 

Вот код JavaScript: (index.php)

[110]

Вот является Кодом PHP: (sqldb.php)

[111]

я надеюсь, что Вы знаете, как получить $userid от Сессии, и для этого Вам нужны База данных с вызываемыми пользователями Таблицы и Таблица внутренние пользователи, названные экраном;=) KSP

отношенийPOST['screensize']; $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("UPDATE users SET screen= :screen WHERE id = $userid"); $statement->execute(array('screen' => $data));

я надеюсь, что Вы знаете, как получить $userid от Сессии, и для этого Вам нужны База данных с вызываемыми пользователями Таблицы и Таблица внутренние пользователи, названные экраном;=) KSP

отношений
0
ответ дан 26 November 2019 в 21:02
поделиться

PHP работает только на стороне сервера, а не на хосте пользователя. Используйте JavaScript или jQuery, чтобы получить эту информацию и отправить через AJAX или URL (? X = 1024 & y = 640).

0
ответ дан 26 November 2019 в 21:02
поделиться

Используйте JavaScript ( screen.width и screen.height IIRC, но я могу ошибаться, давно не делал JS). PHP не может этого сделать.

4
ответ дан 26 November 2019 в 21:02
поделиться

PHP - это серверный язык - он выполняется только на сервере, а результирующий вывод программы отправляется клиенту. Таким образом, нет доступной информации о «экране клиента».

Тем не менее, вы можете попросить клиента сообщить вам, какое у него разрешение экрана, через JavaScript. Напишите небольшой скриптлет для отправки вам screen.width и screen.height - возможно, через AJAX или, что более вероятно, с начальной «страницей перехода», которая его находит, а затем перенаправляет на http://example.net/index.php ? size = AxB

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

19
ответ дан 26 November 2019 в 21:02
поделиться

Единственный способ - использовать javascript, а затем заставить javascript отправить его на свой php (если вам действительно нужна сторона сервера res). Однако это совершенно не удастся, если они отключат javascript.

0
ответ дан 26 November 2019 в 21:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: