Я пытаюсь создать индикатор выполнения из числовых значений в базе данных. У меня есть два поля в базе данных, одно называется «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, чтобы получить значения для каждой строки данных. Затем вы можете делать с данными все, что вам нужно.
Спасибо за полученную помощь.