Почему значение не добавляется правильно?

0

Этот код находится в цикле foreach, который должен обрабатывать большой ввод в стиле контрольного списка. Этот конкретный раздел должен хранить номер в базе данных, которая помогает переупорядочить список.

Тестирование этого кода в отдельном файле, кажется, работает и показывает желаемый результат, но на практике это не работает.

// Get the number we need for the disp_order
$order_query = $db_connect->query("SELECT disp_order FROM procedure_data WHERE procedure_id = ".$pd_p_id." ORDER BY disp_order DESC LIMIT 1");
$order = $order_query->fetch_array(MYSQLI_ASSOC);

if ($order['disp_order'] == NULL) {
    $calculated_disp_order = 1;
} else {
    $calculated_disp_order = $order['disp_order']+1;
};

// Close this, we don't need it anymore
$order_query->close();

$stmt = $db_connect->prepare("INSERT INTO procedure_data VALUES 
(NULL, ?, ?, ?, ?, ?, ?, NOW())");
$stmt->bind_param("iissss", $pd_p_id, $calculated_disp_order, 
$pd_task, $pd_action_type, $pd_action, $pd_notes);
$stmt->execute();
$stmt->close();

$order['disp_order'] возвращает правильное значение 11, но должно быть увеличено на 1 при $calculated_disp_order = $order['disp_order']+1; , Вместо этого он сохраняет свое значение 11.

  • 0
    $calculated_disp_order = float($order['disp_order'])+1;
  • 0
    Где код для цикла? Вы проверили, что содержит $order['disp_order'] ?
Показать ещё 1 комментарий
Теги:

1 ответ

0

floatval() был необходим для следующей строки:

$calculated_disp_order = floatval($order['disp_order'])+1;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню