Как создать индикатор выполнения из числовых значений в базе данных? - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь создать индикатор выполнения из числовых значений в базе данных. У меня есть два поля в базе данных, одно называется «NEXT_STEP», а другое - «MAX_STEPS». Когда NEXT_STEP = MAX_STEPS + 1, все шаги завершены, и индикатор выполнения должен быть заполнен (100%). Эти шаги будут выполняться в режиме реального времени, и NEXT_STEP будет увеличиваться по мере продвижения процесса в фоновом режиме. Надеемся, что веб-страница, отображающая прогресс, будет обновляться вместе с ним, поэтому потребуется использование AJAX.

Для этого я пытаюсь извлечь эти числовые значения из базы данных, сохранить их в переменных PHP, чтобы затем я мог рассчитать процент и отобразить индикатор выполнения с точным процентом. Затем, используя AJAX и интервал времени, я могу повторно вызывать метод для обновления индикаторов выполнения.

Итак, мои вопросы:

  • Как я могу получить поле из базы данных и сохранить его в переменной PHP?
  • Как мне получить несколько строк данных, а затем выбрать соответствующие поля и рассчитать процент? (Я предполагаю цикл while, но не совсем уверен)

Я пытался использовать oci_define_by_name () для хранения полей в переменных PHP.

Кроме того, я попытался использовать oci_fetch () вместе с oci_result () для извлечения соответствующих данных из массива, который выбирается при запросе к БД, но без преобладания.

$sql='select * from lookout_status order by TIMESTAMP_1 DESC';
     $stid= oci_parse($conn, $sql);
       echo $sql;

       oci_define_by_name($stid, 'NEXT_STEP', $next);
       echo $next;

       oci_execute($stid);

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

Спасибо за любую помощь, предоставленную заранее.

EDIT:

Мне удалось решить эту проблему - для дальнейшего использования, если кто-нибудь сталкивается с этим вопросом, используйте oci_define_by_name (), чтобы определить значения из DB в переменные PHP. Затем выполните запрос sql и используйте oci_fetch () внутри цикла while, чтобы получить значения для каждой строки данных. Затем вы можете делать с данными все, что вам нужно.

Спасибо за полученную помощь.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Используйте oci_define_by_name () для определения значений из DB в переменные PHP.Затем выполните запрос sql и используйте oci_fetch () внутри цикла while, чтобы получить значения для каждой строки данных.Затем вы можете делать с данными все, что вам нужно.

$stid= oci_parse($conn, $sql);
       echo $sql;
       echo "<br>";

       oci_define_by_name($stid, 'NEXT_STEP', $next);
       oci_define_by_name($stid, 'MAX_STEPS', $max);

       oci_execute($stid);

       while (oci_fetch($stid)){
         //Some code omitted here...
         $val = round($percent, 0);
         echo $val;
         $prog = "<progress value='$val' max='100'></progress>";
         echo $prog;
         echo "<br>";
         echo "<br>";
       }
0 голосов
/ 24 апреля 2019

Вы используете класс PDO для получения набора результатов из базы данных.А затем получите цикл по извлеченному результату и рассчитайте, какой вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...