Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860

UPDATE SET

18.05.2015, 18:04. Показов 3219. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
из за чего сумма не обновляется в бд? все ведь вроде правильно, в бд есть таблица users в ней есть строка money, ну на сайте не высчитывается сумма после покупки, в чем может быть баг?

$update="UPDATE users SET money=money-$cena WHERE login='$rowus[login]'";
mysql_query($update);

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<?php
 
if ($_GET["page"]=="ok") {
 
$sqlcg="SELECT * FROM tb_config WHERE id='1'";
$resultcg=mysql_query($sqlcg);
$rowcg=mysql_fetch_array($resultcg);
 
$url=htmlspecialchars($_POST[url]);
$text=htmlspecialchars($_POST[text]);
$tarif=intval($_POST[tarif]);
 
 
if ($url=="" or strlen($url) > 160) {
echo skin_redir_msg(self_url(),'Ошибка! Вы не указали URL ссылки, или он превышает 160 символов.');
}
 
 
if ($tarif<1) {
echo skin_redir_msg(self_url(),'ошибка! дней не меньше 1');
}
 
 
if ($text=="" or strlen($text) > 160) {
echo skin_redir_msg(self_url(),'Ошибка! Вы не указали URL баннера, или он превышает 160 символов.');
 }
 
 
// Проверка блокировки
$sqlbl=mysql_query("SELECT url, text FROM tb_bl_site");
while ($rowab=mysql_fetch_array($sqlbl)) {
$str_ads=str_replace("$rowab[url]","vnsscru", $url);
$eregads=ereg("vnsscru", $str_ads);
if ($eregads=="1") {
print"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\" 
style=\"BORDER: #ff0000 1px solid\"><td width=\"32\">
<img src=\"img/error.gif\" width=\"32\" 
height=\"32\" border=\"0\"></td><td><b>
<font color=\"#ff0000\">Ошибка! Данный сайт запрещен к рекламе. Причины указаны ниже.</font>
</b></td></table><br><br><b>Причина блокировки:</b> $rowab[text]<br><br>";
}
}
 
 
$cena=$tarif*$rowcg[ads_100x100_money];
 
if ($cena>5000.00) {
    $sz=$cena*0.05;
$sz=number_format($sz, 3, '.', '');
 $skidka="(Скидка 5%) - $sz $rowcg[money]";
} else {
$skidka="(Скидка 0%)";
}
 
 
 
$cena=number_format($cena, 2, '.', '');
 
if ($USER->money<$cena) {
print"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\" 
style=\"BORDER: #ff0000 1px solid\">
<td width=\"32\">
<img src=\"img/error.gif\" width=\"32\" height=\"32\" border=\"0\"></td><td><b>
<font color=\"#ff0000\">Ошибка! На Вашем балансе недостаточно денежных средств.</font>
</b></td></table><br><br>";
}
 
$update="UPDATE users SET money=money-$cena WHERE login='$rowus[login]'";
mysql_query($update);
 
$time=time();
$time_ads=$time+$tarif*86400;
 
$add="INSERT INTO tb_ads_100x100 (login, url, text, date) VALUES ('$rowus[login]','$url','$text','$time_ads')";
mysql_query($add);
 
$date=date("d.m.Y г. в H:s");
$add2="INSERT INTO tb_ads_history (login, text, money, date) VALUES ('$rowus[login]','Заказ рекламы на сайте ($tarif суток)','$cena','$date')";
mysql_query($add2);
 
$add3="INSERT INTO tb_history (login, text, money, date, flag) VALUES ('$rowus[login]','Заказ рекламы на сайте ($tarif суток)','-$cena','$date','1')";
mysql_query($add3);
 
 
print"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\" style=\"BORDER: #00cc00 1px solid\"><td width=\"32\"><img src=\"img/ok.gif\" width=\"32\" height=\"32\" border=\"0\"></td><td><b><font color=\"#00cc00\">Ваша реклама успешно размещена.</font></b></td></table><br><br><i>Вы будете перенаправлены на страницу аккаунта через 3 сек...</i>";
?>
<script language="JavaScript" type="text/javascript">
function Go(){ 
location="account"; 
} 
setTimeout( 'Go()', 3000 ); 
</script>
 
<?php
}
 
 
if ($_GET["page"]=="post") {
    
$sqlcg="SELECT * FROM tb_config WHERE id='1'";
$resultcg=mysql_query($sqlcg);
$rowcg=mysql_fetch_array($resultcg);
 
$text=htmlspecialchars($_POST[text]);
$url=htmlspecialchars($_POST[url]);
$tarif=intval($_POST[tarif]);
$color=7.00;
 
if ($url=="" or strlen($url) > 160) {
echo skin_redir_msg(self_url(),'ошибка ввода URL ссылки должно быть не менее 160 символов!');
}
 
if ($tarif<1) {
echo skin_redir_msg(self_url(),'ошибка! дней не меньше 1');
}
 
if ($text=="" or strlen($text) > 160) {
echo skin_redir_msg(self_url(),'Ошибка! Вы не указали URL баннера, или он превышает 160 символов.');
 }
 
 
// Проверка блокировки
$sqlbl=mysql_query("SELECT url, text FROM tb_bl_site");
while ($rowab=mysql_fetch_array($sqlbl)) {
$str_ads=str_replace("$rowab[url]","vnsscru", $url);
$eregads=ereg("vnsscru", $str_ads);
if ($eregads=="1") {print"<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"10\" style=\"BORDER: #ff0000 1px solid\"><td width=\"32\"><img src=\"img/error.gif\" width=\"32\" height=\"32\" border=\"0\"></td><td><b><font color=\"#ff0000\">Ошибка! Данный сайт запрещен к рекламе. Причины указаны ниже.</font></b></td></table><br><br><b>Причина блокировки:</b> $rowab[text]<br><br><a href=\"javascript:history.go(-1)\"><< Вернуться назад</a>"; include("footer.php"); exit;}
}
 
 
 
$cena=$tarif*$rowcg[ads_100x100_money]+$color;
 
if ($cena>5000.00) {$sz=$cena*0.05;
$sz=number_format($sz, 3, '.', '');
$cena=$cena*0.95; $skidka="(Скидка 5%) - $sz $rowcg[money]";} 
else {
$skidka="(Скидка 0%)";
}
 
if ($rowus[vip]!="") {
$cena=$cena*0.9;
$vip_s="10%";
} else {
$vip_s="0% <a href=\"vip.php\">Как получить?</a>";
}
 
$cena=number_format($cena, 2, '.', '');
 
echo "<img src=\"img/ok2.gif\" width=\"16\" height=\"16\" border=\"0\" align=\"absmiddle\"> 
<font color=\"#00cc00\"><b>Ваш заказ принят!</b></font><br><br>
<font color=\"#ff0000\">Баннер будет размещен автоматически после оплаты.<br>
Внести изменения Вы сможете в любой момент на странице «Моя реклама».</font>
<br><br>----------<br>
<b>Сумма к оплате:</b> $cena $rowcg[money]<br>
<b>Скидка:</b> $skidka<br>
<b>VIP скидка:</b> $vip_s<br>
<b>Описание:</b> Заказ рекламы ($tarif суток)<br>
<b>ссылка цвета:</b>  ($color рублей)<br>
----------<br><br>
<font color=\"#999999\">Оплата с внутреннего счета</font><br><br>
 
<table border=\"0\"><td><form method=\"post\" action=\"ads?page=ok\">
<input type=\"submit\" value=\"Подтвердить оплату $cena $rowcg[money]\">
<input type=\"hidden\" name=\"url\" value=\"$url\">
<input type=\"hidden\" name=\"text\" value=\"$text\">
<input type=\"hidden\" name=\"tarif\" value=\"$tarif\">
<input type=\"hidden\" name=\"color\" value=\"$color\">
</form></td>
<td> или </td><td><form method=\"post\" action=\"account\">
<input type=\"submit\" value=\"Отказаться от оплаты\">
</form></td></table>
<br>
<b><font color=\"#6699cc\">» Пример баннера</font></b><br>
<img src=\"img/hr_blue.gif\" width=\"400\" height=\"2\" border=\"0\"><br><br>
<p>$text</p>
<a href=\"$url\" target=\"_blank\">$url</a>
<br><br>
<font color=\"#ff0000\">Если баннер отображается, то можете приступать к оплате.</font>";
}
 
if(isset($_GET['zakaz'])) {
?>
{SKIN_FRAME_START}
<table class="print">
<tr><td style="padding:7px">
  <h2>
 Ваша реклама
  </h2>
  </td></tr>
<tr><td class="bar"></td></tr>
<tr><td class="p c" style="padding:20px">
статическая реклама размещается справа в верху на всех страницах 
<br><br><img src="/data/store/ads/img_sk.gif" width="20" height="20" border="0"
 align="absmiddle"> <font color="#ff0000">
 <b>При заказе на сумму от 5 000
 <?php print"$rowcg[money]"; ?> скидка 5%.</b></font><br><br>
<img src="/data/store/ads/hr_blue.gif" width="400" height="2" border="0"><br><br>
 
<form method="post" action="ads?page=post"
onsubmit="return SbmFormB(); return false;" id="newform">
<table class="tables">
<tr><td width="160"><b>URL сайта (ссылка):</b></td>
<td>
<input type="text" name="url" maxlength="160" value="http://"
 class="ok" onkeydown="this.style.background='#FFFFFF';"></td></tr>
 <tr><td><b>Описание ссылки:</b></td>
 <td><input type="text" name="text" maxlength="160" 
 class="ok" onkeydown="this.style.background='#FFFFFF';"></td>
 </tr><tr><td><b>Количество дней:</b></td><td>
 <input type="text" name="tarif" id="tarif" maxlength="7" value="" 
 class="ok12" style="text-align:right;"
 onChange="_obsch();" onKeyUp="_obsch();" 
 onkeydown="this.style.background='#FFFFFF';"></td></tr>
<tr><td><b>Выделить цветом:</b></td><td>
<select name="color" id="color" onChange="_obsch();" onClick="_obsch();">
<option value="0">Нет</option><option value="1">Да (+7.00 руб.)</option></select>
</td></tr><tr><td id="pricet"></td><td id="prices"></td>
</tr><td align="center">
<input type="submit" value="Перейти к оплате"/></a></td></table></form>
    </center><br/>
 </td></tr>
</table>
{SKIN_FRAME_END}
 
<script type="text/javascript" language="JavaScript"> 
 
    function gebi(id){
        return document.getElementById(id)
    }
    
    function _obsch(){
        var tarif = gebi('tarif').value;
        var color = gebi('color').value;
        var cena_p = 100.00;
        var cena_color = 7.00;
        var price = ( (color * cena_color) + tarif * (cena_p) );
        gebi('pricet').innerHTML = '<b>Стоимость заказа:</b>';
        gebi('prices').innerHTML = '<b style="color:#228B22;">' + price.toFixed(2) + ' руб.</b>';
    }
    </script>
<?}?>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2015, 18:04
Ответы с готовыми решениями:

не могу обновить значения в базе данных с update set
Помогите пожалуйста, не обновляются значения в таблице. Пробовал по разному, но все тщетно. Что я делаю не так? $dbhost =...

Update set
Уважаемые программисты и просто сочувствующие! У меня небольшой вопрос: необходимо чтобы при нажатии на клавишу из Edit'ов данные...

не работает update set
доброго времени суток. Посмотрите пожалуйста, в чем может быть проблема? if ($gr_ins&gt;0) { ...

13
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
18.05.2015, 19:04
А если $update распечатать, что в ней?
0
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 19:45  [ТС]
Para bellum так?

Добавлено через 1 минуту
string(137) "UPDATE users SET money=money-100.00 WHERE login=''"

тока логин не определяется(((

Добавлено через 27 минут
странно прописал так

PHP
1
2
3
$sqlus="SELECT * FROM users WHERE login='$user'";
$resultus=mysql_query($sqlus);
$rowus=mysql_fetch_array($resultus);

все равно не определяется логин....
0
 Аватар для rikitikitari
87 / 87 / 41
Регистрация: 09.05.2015
Сообщений: 315
18.05.2015, 19:49
Лень весь код смотреть. При поиске - у вас массив $rowus[] кроме как в запросах к базе, больше нигде не встречается.
Не понятно, откуда там данные вообще должны взяться
0
F57
 Аватар для F57
68 / 68 / 23
Регистрация: 17.02.2015
Сообщений: 397
18.05.2015, 19:52
У тебя в запросе одновременно и GET и POST запросы. Так не бывает.
0
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 20:01  [ТС]
лень плохая черта в человеке

решил так вывести
PHP
1
2
$update="UPDATE users SET money=money-$cena WHERE login='$USER->login'";
var_dump($update);
получил такое

PHP
1
string(55) "UPDATE users SET money=money-100.00 WHERE login='admin'"
ну сумму все равно не высчитывает(

Добавлено через 1 минуту
почему не бывает POST и GET вместе?)

через POST у меня отправляются переменные

PHP
1
2
3
$text=htmlspecialchars($_POST[text]);
$url=htmlspecialchars($_POST[url]);
$tarif=intval($_POST[tarif]);
а через GET условие

PHP
1
if ($_GET["page"]=="ok") {
Добавлено через 4 минуты
если все прописать через POST например, то работать не будет, также и через GET если все прописать тож работать не будет

Добавлено через 2 минуты
если пропишу так
PHP
1
2
 $update="UPDATE users SET $USER->money=$USER->money-$cena WHERE login='$USER->login'";
var_dump($update);
то выводит так

PHP
1
string(138) "UPDATE users SET 500=500-100.00 WHERE login='admin'"
ну сумму не высчитывает, воще не могу понять в чем ошибка, все ж верно
0
F57
 Аватар для F57
68 / 68 / 23
Регистрация: 17.02.2015
Сообщений: 397
18.05.2015, 20:12
PHP
1
or die(mysql_error());
0
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 20:15  [ТС]
так вставить?

PHP
1
2
 $update="UPDATE users SET $USER->money=$USER->money-$cena WHERE login='$USER->login'";
 or die(mysql_error());
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.05.2015, 20:29
Цитата Сообщение от wolf Посмотреть сообщение
почему не бывает POST и GET вместе?)
Кто Вам такое сказал?
Цитата Сообщение от wolf Посмотреть сообщение
PHP
1
$update="UPDATE users SET $USER->money=$USER->money-$cena WHERE login='$USER->login'";
PHP
1
$update="UPDATE users SET {$USER->money}=".($USER->money - $cena)." WHERE login='{$USER->login}'";
0
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 20:34  [ТС]
ввел

Цитата Сообщение от pav1uxa Посмотреть сообщение
$update="UPDATE users SET {$USER->money}=".($USER->money - $cena)." WHERE login='{$USER->login}'";

получил

PHP
1
string(44) "UPDATE users SET 500=400 WHERE login='admin'"
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.05.2015, 20:38
Цитата Сообщение от wolf Посмотреть сообщение
получил
Да ну, не может быть... Наверное Вы переписали от руки вместо того чтобы скопировать и переписали неверно?
0
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 20:44  [ТС]
я копирую, зачем мне переписывать?

я сам уже ниче не понимаю, все ж верно, а сайт не высчитывает сумму из бд

решил так прописать

PHP
1
2
$update="UPDATE users SET $USER->money=$USER->money-$cena WHERE id=$USER->id";
var_dump($update);
вывело так

string(42) "UPDATE users SET 500=500-107.00 WHERE id=1"

все ж верно, все видит система, но не высчитывает
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
18.05.2015, 20:46
Лучший ответ Сообщение было отмечено wolf как решение

Решение

wolf, Ну это я уже запутался, правильно так:
PHP
1
$update="UPDATE users SET money=".($USER->money - $cena)." WHERE login='{$USER->login}'";
Добавлено через 59 секунд
Цитата Сообщение от wolf Посмотреть сообщение
я копирую, зачем мне переписывать?
Вы исправили сообщение после того как я на него ответил, еще и обманываете.. как некрасиво. Там до этого было так:
Цитата Сообщение от wolf Посмотреть сообщение
ввел

PHP
1
$update="UPDATE users SET {$USER->money}=".($USER->money - $cena)." WHERE login='{$USER->login}'";
получил
Code
1
string(44) "UPDATE users SET money=money-100 WHERE login='admin'"
чего в принципе быть не может с моим кодом...
1
2 / 2 / 10
Регистрация: 17.09.2012
Сообщений: 860
18.05.2015, 20:52  [ТС]
так давайте по порядку, сейчас я вставляю ваш варинт

PHP
1
$update="UPDATE users SET money=".($USER->money - $cena)." WHERE login='{$USER->login}'";
добавляю только
var_dump($update);

чтоб проверить что выдаст код

код выдал
string(46) "UPDATE users SET money=399 WHERE login='admin'"

все правильно теперь)

спасибо Вам, большое за помощь, а выше я редактировал сообщения потому что запутался малясь, а не врал)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2015, 20:52
Помогаю со студенческими работами здесь

update Table1 set X=X+1 - как?
Здравствуйте! Подскажите, как в SQL коде (без ХП) передаваемом из программы написать код который будет к текущему значению добавлять...

On Update Set Null... Как???
Приветствую. Такая ситуация.... есть две таблицы в большой бд. tblUsers &amp; tblRings Вот так связаны: tblUsers.ID ---...

SQL-запрос UPDATE/SET/CASE
Пытаюсь сделать запрос на изменение записей в БД из внешнего приложения при определенных условиях, используя конструкцию &quot;UPDATE ......

UPDATE MSysObjects SET не хочет работать
Здравствуйте! Хочу поменять расположение связанных таблиц. Подключение с админскими правами. cmd.CommandText = &quot;UPDATE...

Update $variable SET. разрешено ли так делать?
Здравствуйте, пытаюсь оптимизировать задуманное и пришел к мысли использовать переменную как название колонки с которой я буду работать...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru