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. Помогите составить условие (запрос в БД) [2]
Так понял, что это не ставит условие .. Правельно?
Тогда как поставить условие? Чтобы вычиталась сумма, если баланс больше или равен цене товара? (Добавление)
Решил сам. Может кому понадобится:
Также зачем такое в цыкле. Нужно после подключения ставить кодировку
teddy
Отправлено: 15 Июля, 2013 - 12:52:39
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
esterio пишет:
@ - ЗЛО. Запомните ето. И вообще зачем там подваления ошыбок
Присоединяюсь...
+ дополнение от себя:
Особо в код не вчитывался и тему не читал, но посмотрев последний пост автора заметил ошибку и отсутствие фильтрации данных.
if ($balance>$price)
Если баланс больше цены, тогда покупаем я так понял. А что если баланс такой же, как и сама цена, но не больше? Купить то ничего не получится... поэтому ($balance>=$price)
soffrick
Отправлено: 15 Июля, 2013 - 12:55:31
Посетитель
Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012 Откуда: Россия, Москва
$query='SELECT COUNT(*) AS can_buy FROM client WHERE client_id = '.(int)$_SESSION['clientid'].' AND client_balance >= '.(int)$_POST['price'].' LIMIT 1';
Отсюда вытекает, что нельзя использовать циклы do { ... } while (); при выборке из базы.
Потому, что такой цикл выполняется как минимум один раз! Вне зависимости от того есть ли хоть какой-то результат.
(Добавление)
soffrick пишет:
нет, Ваш код без цыкла
Цыкл ен нужен. Там всегда будет один результат
VenZell
Отправлено: 15 Июля, 2013 - 13:39:27
Частый гость
Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013
UPDATE client SET client_balance = client_balance - $price WHERE client_balance > $price AND client_id = $loginid
Чтобы у автора срабатывала проверка так, как он хотел...
vanya_sl
Отправлено: 15 Июля, 2013 - 13:52:38
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
VenZell
Вы думаете я не пробовал AND? вчера так часов 3 провел с этим впустую ... перепробовал массу всего) от замены OR na AND ничего не менялось) (Добавление)
teddy пишет:
soffrick пишет:
код без цыкла
А тут цикл и не нужен, если выбираем 1 запись по конкретному условию.
Буду благодарен, если представите код без цикла)
soffrick
Отправлено: 15 Июля, 2013 - 14:01:01
Посетитель
Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012 Откуда: Россия, Москва
Помог: 17 раз(а)
Цитата:
если представите код без цикла)
ты что тоже между строк читаешь?
----- Правильный вопрос - уже половина правильного ответа!
p.s. индусы повсюду, будьте осторожны!
vanya_sl
Отправлено: 15 Июля, 2013 - 14:07:05
Частый гость
Покинул форум
Сообщений всего: 131
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
soffrick
к чему это?
лишь бы написать?
esterio
Отправлено: 15 Июля, 2013 - 14:08:36
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.