Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Maxter
0 / 0 / 1
Регистрация: 01.07.2011
Сообщений: 5
#1

В таблице order не изменяется поле статуса заказа - PHP БД/MySQL

16.04.2018, 16:53. Просмотров 136. Ответов 2
Метки нет (Все метки)

Здравствуйте!
При использую php в связке с MySql у меня почему то не изменяется статус заказа с '0' на '1'. Поле заказа имеет тип ENUM('0','1'). При работе с БД я использую пакет redbeanphp.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        $orderId = $this->getRequestID();
        $status='0';
        if (isset($_GET['status']) && $_GET['status']=='0') {
            $status = '1';//значение статуса
        }
        $order = \R::load('order',$orderId);//вытаскиваю строку с заданным id из таблицы 'order'
        if (!$order) {
            throw new \Exception('Страница не найдена',404);
        }
        $order->status = $status;//новое значение статуса
        $order->update_at = date("Y-m-d H:i:s");//новое значение для даты изменения
        if(\R::store($order)) { //записываю полученные значения, но статус не меняется, а дата меняется
            $_SESSION['success'] = 'Изменения сохранены';
        }
        redirect();
Данный код не выдаёт никаких ошибок. При этом если поменять тип поля статуса заказа в таблице order с ENUM('0','1') на ENUM('1','0'), то статус будет меняться, но при этом завершённые заказы в таблице со всеми заказами будут в самом верху, что не есть хорошо...кто-нибудь сталкивался с такой проблемой и может подсказать как это исправить. Благодарю, что прочли это сообщение)

Добавлено через 4 часа 38 минут
Забыл добавить, что сайт работает в виртуальной среде LAMP, созданной с помощью vagrant...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2018, 16:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос MySQL В таблице order не изменяется поле статуса заказа (PHP БД):

Изменить поле статуса в БД по истечению заданного времени
Привет. Пользователю необходимо совершить определенное действие и нажать на...

Не закрашивается поле в таблице
<?php // коннект к базе $conn = oci_connect("questions", "questions",...

Добавить еще одно поле к таблице и форме
Приветствую! Господа, помогите новичку, пожалуйста. Вобщем, есть форма...

Можно ли заполнять одно поле вместо всех полей в таблице БД MySQL?
Доброго времени суток!)) Пишу и тестирую скрипт. В нем одна лишь переменная,...

Отбор данных в таблице по введенному коду заказа в поле textbox
День добрый. Очень нужна помощь. Есть база в access, подключил с помощью...

Отслеживание статуса заказа
Вобщем суть вопроса такова: хочу создать небольшой закрытый сайт для...

2
otto-fukin
8 / 44 / 17
Регистрация: 15.06.2017
Сообщений: 382
18.04.2018, 14:15 #2
Цитата Сообщение от Maxter Посмотреть сообщение
$_GET['status']=='0'
Цитата Сообщение от Maxter Посмотреть сообщение
if(\R::store($order))
Цитата Сообщение от Maxter Посмотреть сообщение
if (!$order)
лажовые проверки
0
arava
300 / 105 / 60
Регистрация: 30.06.2014
Сообщений: 600
18.04.2018, 14:57 #3
Maxter, у вас не выполняется условие :
PHP
1
if (isset($_GET['status']) && $_GET['status']=='0') {
и не переопределяется переменная $status на значение 1.
по этому :
Цитата Сообщение от Maxter Посмотреть сообщение
При этом если поменять тип поля статуса заказа в таблице order с ENUM('0','1') на ENUM('1','0')
выполните проверку :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        $orderId = $this->getRequestID();
        $status='0';
        if (isset($_GET['status']) && $_GET['status']=='0') {
            $status = '1';//значение статуса
            die('status переопределен на '. $status);
        }
        $order = \R::load('order',$orderId);//вытаскиваю строку с заданным id из таблицы 'order'
        if (!$order) {
            throw new \Exception('Страница не найдена',404);
        }
        $order->status = $status;//новое значение статуса
        $order->update_at = date("Y-m-d H:i:s");//новое значение для даты изменения
        if(\R::store($order)) { //записываю полученные значения, но статус не меняется, а дата меняется
            $_SESSION['success'] = 'Изменения сохранены';
        }
        redirect();
Если вы не увидите сообщение :
status переопределен на 1 , то условие не выполняется 100%
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2018, 14:57
Привет! Вот еще темы с решениями:

Ведение статуса заказа
Как реализовать ведение статуса заказа? К примеру покупатель приобретает товар...

форма на сайт статуса заказа
Привет! Помогите, плизз, создать скрипт. Нужна форма ввода заказа или логина,...

УТ 11.2. Изменение статуса заказа клиента.
Добрый день! Помогите пожалуйста разобраться! В УТ 11.2 есть документ заказ...

HSQL запрос. Что не так? "from hiberdata.Order order where order.clientId=?"
public List loadOrdersByClientId(Integer clientId) { return...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru