условие if работает некорректно

151
07 июля 2018, 23:40

Это бот VK. Код должен работать так: Я отправляю ему "1", он делает &flag = true и отправляет мне сообщение "Введите новую строку". После, я ввожу сообщение, бот записывает его в базу данных, отправляет мне сообщение "Строка записана" и делает $flag = false, чтобы мои сообщения больше не записывались.
Но проблема в том, что условие 2 не работает, как надо. Хоть я и поставил, чтобы body не было равно "1", условие все равно выполняется, и единица заносится в базу. (см. картинку ниже).
Что мне сделать, чтобы этот код работал, как я описал выше?

if ($data->object->body == 1) //условие 1
            {
                $flag = true;
                $request_params = array( 
                    'message' => "Введите новую строку", 
                    'user_id' => $user_id, 
                    'access_token'=> getenv('VK_TOKEN'),
                    'v' => '5.69'      ); 
            }
if ($flag && $data->object->body != 1) // условие 2
            {
                $qer = $data->object->body;
                $request_params = array( 
                    'message' => "Строка записана: '$qer'", 
                    'user_id' => $user_id, 
                    'access_token'=> getenv('VK_TOKEN'),
                    'v' => '5.69'      );   
                $query = "INSERT INTO test_table VALUES (NULL, '$qer');";
                $result = mysqli_query($dbcon, $query);
                $flag = false;
            }

Answer 1

Скорее всего, это происходит из-за того, что в строке if ($data->object->body == 1) вы проверяете данные на равенство, а в строке if ($flag && $data->object->body !== 1) на идентичность. Данные в $data->object->body приходят в строковом формате, а вы проверяете $data->object->body !== (integer)1.

Попробуйте сделать во втором варианте проверку на равенство (!=).

READ ALSO
Формирование многомерного массива

Формирование многомерного массива

никак не могу правильно перезаписать массив

148
удаление элементов из массива php

удаление элементов из массива php

как можно удалить элементы массива от начала до указанного? например, есть массив:

192
Определение региона по номеру телефона на сайте

Определение региона по номеру телефона на сайте

Товарищи, возникла задача на сайте определить регион по введенному пользователем номеруТе кто знаком, не подскажете, как реализовать

181
MySQL: поиск по регулярному выражению

MySQL: поиск по регулярному выражению

Есть большая таблица с названиями улицМне необходима выбрать из нее только те, которые содержат дефис и названия, например "Тверская-Ямская...

160