Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: PHP, MySQL. Помогите составить условие (запрос в БД)
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
Доброй ночи.
Нужно составить правелно запрос в БД.
Короч пользователь кликает купить, с его баланса списываются средства. Я составил, но работает немного не так. Само условие работает немного не так. Если например цена больше от баланса, то снимаются все средства (до 0) и записываются данные заказа. А нужно, если баланс меньше за цену, чтобы выводилось сообщение. Когда баланс пользователя больше цены - все ок.
Мой код:
Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010
Помог: 3 раз(а)
vanya_sl
1. Тут не проверить запрос, пока не знаешь баланса покупателя, надо делать еще один запрос. Все, что идет до тега WHERE выполняется всегда, при условии, что нет ошибки.
2. Есть проверка на то, что баланс должен быть больше цены, но нет проверки на ее равенство (>=)
3. Нет проверки на sql инъекции
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
[+]
VestCoastman о каком запросе идет речь, и зачем его подменять?
vanya_sl
Отправлено: 15 Июля, 2013 - 01:41:52
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
VestCoastman
1.Не понимаю. Буду благодарен, если покажите как надо сделать кодом, или примером ...
2.
3. Ну мне бы сейчас условие правельно реализовать)
BesTime
Отправлено: 15 Июля, 2013 - 01:46:57
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
Большое спасибо!
Но ни один из примеров не работает ... Корректировал но опять возвращаемся к моему варианту (те же действия скрипта) ...
На счет переменной баланс. В моем коде она видна. И нормально работает списывания суммы ..
Вот толко когда баланс ниже цены, возникает ошибка. Списывается баланс до 0 и отсылаются данные. А нужно что бы выводилось сообщение "Нет денег" ...
А то так пользователь сможет купить то, что стоит 100$ за 2$
BesTime
Отправлено: 15 Июля, 2013 - 11:46:32
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Февр. 2012
Помог: 0 раз(а)
[+]
Где в коде котором ты выложил переменная баланс и где она в обращении к бд?
vanya_sl
Отправлено: 15 Июля, 2013 - 12:05:32
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
UPDATE client SET client_balance = client_balance -$price WHERE client_balance >$price OR client_id =$loginid
Баланс клиента - цена только тогда WHERE client_balance > $price
Здесь же есть обращение к полю баланс ... Или я что-то не так понимаю? (Добавление) BesTime
А ваш код вызывает таую ошибку:
Notice: Undefined variable: link in C:\xampp\htdocs\auth2\client\admin.php on line 97
Warning: mysql_query() expects parameter 2 to be resource, null given in C:\xampp\htdocs\auth2\client\admin.php on line 97
Warning: mysql_result() expects parameter 1 to be resource, null given in C:\xampp\htdocs\auth2\client\admin.php on line 98
VenZell
Отправлено: 15 Июля, 2013 - 12:18:50
Частый гость
Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.