Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: базы данных

Войти
Регистрация
Восстановить пароль
 
arava
104 / 103 / 39
Регистрация: 30.06.2014
Сообщений: 584
#1

Обработка данных в модели - PHP БД

27.01.2017, 11:48. Просмотров 185. Ответов 8

С формы приходят данные на контроллер :

PHP
1
2
3
4
5
<form method="post" action="/warehouse/show/<?=$value['id']?>">
          <input class="input-sm-form-text" type="text" name="quantity" placeholder="Количество кабеля"/>
          <input class="input-sm-form-text" type="text" name="num_todo" placeholder="TODO"/>&nbsp;&nbsp;&nbsp;
          <input class="btn-default" type="submit" name="saveCable" value="Сохранить"/>
        </form>
Контроллер принимает данные и должен передавать на модель, которая по этим данным сделаем выборку с БД

PHP
1
2
3
4
5
6
7
8
9
 public function action_show()
    {
        if(isset($_POST['saveCable'])) {
 
            $quantity_form = $_POST['quantity'];
 
            $data = Model_warehouse::saveQuantity($quantity_form);
 
        }
Модель :

PHP
1
2
3
4
5
6
7
8
    public static function saveQuantity($quantity_form)
    {
        $id = Routing::getParameters();
 
        $db = DB::getConnection();
        $data = $db->query("SELECT quantity FROM warehouse WHERE id='".$id."' ");
 
        $array = $data->fetch_all(MYSQLI_ASSOC);// Выбираем все строки и помещеаем их в асоциативный массив
Прошу помощи в понимании как сделать обработку данных в моделе .
Задача такова : В форме я ввожу число, передаю его на контроллер. В моделе я с БД получаю число
SQL
1
SELECT quantity FROM wareheouse WHERE id=$id;
выполняю арифметическую операцию ( число с формы отнимаю от числа с БД ) . Получаю результирующее число и выполняю
SQL
1
UPDATE TABLE SET quantity="рузультат вычитания" WHERE id=$id;
Честно уже запутался совсем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2017, 11:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка данных в модели (PHP БД):

Поинтервальная обработка данных из БД - PHP БД
Добрый день уважаемые пользователи. У меня следующая проблема. Есть таблица в бд и из нее надо вывести данные, но по интервалам. К примеру:...

Обработка большого объема данных - PHP БД
Добрый ночи ребята помогите с одной проблемой. У на старом сайте одного проекта есть база в которой находятся больше 5 000 записей (+...

Обработка и получение данных из многомерного массива - PHP БД
Всем привет! Что мы имеем: 2 таблицы в базе данных:groups и emails Запросом получаем всех пользователей: $sql=&quot;SELECT id_group,...

Обработка формы. Запись данных в базу - PHP
Добрый день господа, Есть проблема с записью данных в базу. Помогите решить. Вот такой фрагмент кода в обработчике формы: //Вставляем...

Обработка формы, проверка типа данных - PHP
Здравствуйте. Через форму передаю определенное число: &lt;input type=&quot;text&quot; name=&quot;number&quot; value=&quot;0&quot; size=&quot;5&quot;&gt; Далее в скрипте проверяю...

Дать определение модели данных и назвать основные модели данных - SQL Server
Дать определение модели данных и назвать основные модели данных. Только начал изучать базы данных SQL. Не очень понимаю о чем речь,...

8
Jodah
Эксперт PHP
2697 / 2369 / 845
Регистрация: 01.08.2012
Сообщений: 8,390
27.01.2017, 12:03 #2
Может так?
PHP
1
2
$db = DB::getConnection();
$db->query("UPDATE `warehouse` SET `quantity` = `quantity` - $quantity_form WHERE `id` = '$id'");
Только не забудьте экранировать $quantity_form или привести к числу, а то могут взломать.
0
arava
104 / 103 / 39
Регистрация: 30.06.2014
Сообщений: 584
27.01.2017, 12:51  [ТС] #3
Такое приведение к числу валидно ?

PHP
1
  $db->query("UPDATE warehouse SET quantity=quantity-'".intval($quantity_form)."' WHERE id='".$id."' ");
Добавлено через 3 минуты
Если в форме вписать число -130 то в UPDATE число увеличивается . Получается в запросе происходит 500 - -130 = 630

Почему так? вычисление интерпретатора?

Добавлено через 3 минуты
Проверил такой код :
PHP
1
2
3
4
5
$a = 5;
$b = 10;
 
$total = $a - -$b;
echo $total;
// result 15

0
Para bellum
Эксперт PHP
3143 / 2906 / 643
Регистрация: 06.01.2011
Сообщений: 8,486
27.01.2017, 13:07 #4
Цитата Сообщение от arava Посмотреть сообщение
Почему так? вычисление интерпретатора?
Минус на минус -- даёт плюс.
0
andr-xw
121 / 76 / 18
Регистрация: 05.03.2013
Сообщений: 447
27.01.2017, 13:09 #5
Математика 5й класс
0
Jodah
Эксперт PHP
2697 / 2369 / 845
Регистрация: 01.08.2012
Сообщений: 8,390
27.01.2017, 13:51 #6
Цитата Сообщение от arava Посмотреть сообщение
Такое приведение к числу валидно ?
Да.
Цитата Сообщение от arava Посмотреть сообщение
Почему так? вычисление интерпретатора?
Ответили выше. От себя добавлю, что -130 - это корректное число. Если нужно чтобы число не было отрицательным - делайте соответствующую проверку.
1
arava
104 / 103 / 39
Регистрация: 30.06.2014
Сообщений: 584
27.01.2017, 13:51  [ТС] #7
Ладно ладно, это понятно.

Вы скажите валидно ли такое приведение к числу ??
PHP
1
  $db->query("UPDATE warehouse SET quantity=quantity-'".intval($quantity_form)."' WHERE id='".$id."' ");
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
27.01.2017, 13:56 #8
да, валидно.
1
Para bellum
Эксперт PHP
3143 / 2906 / 643
Регистрация: 06.01.2011
Сообщений: 8,486
27.01.2017, 14:05 #9
Что у Вас за объект возвращает DB::getConnection()? Если PDO или MySQLi -- лучше используйте подготовленные запросы:
PHP
1
2
3
$stmt = $db->prepare("UPDATE `warehouse` SET `quantity` = `quantity` - :quantity WHERE `id` = :id ");
 
$stmt->execute([':quantity' => $quantity_form, ':id' => $id]);
1
27.01.2017, 14:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2017, 14:05
Привет! Вот еще темы с ответами:

Обработка математической модели - C#
Здравствуйте! Очень рассчитываю на вашу помощь!!! Разрабатываю приложение на С# в VS2010 и столкнулся с проблемой. У меня при вводе в 1ю...

Выбор модели данных базы данных учета личного состава - Базы данных
Доброго времени суток, уважаемые форумчане! Я работаю Вооруженных Сил РФ. Учет личного состава ведётся на бумажных носителях. Для...

Обновление данных в модели Linq to SQL при обновлении данных в БД - LINQ
Подскажите новичку. Есть база данных, в приложении настроена работа с БД с помощью Linq to SQL. Из приложения все работает, но когда я...

В чем различие модели данных от базы данных? - Базы данных
В чем различие модели данных от базы данных?


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

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

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