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
Форумы портала PHP.SU :: Версия для печати :: SQL запросы
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » SQL запросы

Страниц (2): [1] 2 »
 

1. Mr.KreDo - 18 Апреля, 2011 - 18:13:55 - перейти к сообщению
Всем Привет.

Возможно ли в одной строке выполнить несколько SQL запросов ?

Например есть в базе данных строка ( balance ) то есть Баланс, и эта строка находится в другой таблице.
Нужно что бы данные заказа заносились в базу, и отнималась нужная сумма при заказе,

пример кода, который заносит в базу данные при заказе.
Возможно ли добавить что бы отнималась нужная сумма при заказе ?

PHP:
скопировать код в буфер обмена
  1. if(isset($_POST[goorder])){
  2. $query=mysql_query("INSERT INTO order_adm (date, time, id_user, type, zakaz, spok) VALUES ('$_POST[date]', '$_POST[time]', '$_SESSION[user_admin_sp]', '$_POST[type]', '$_POST[zakaz]', '$_POST[spok]')",$db);
  3. $mess="<center>Заявка добавлена!</center>";
  4. }else
  5. {
  6. $mess="";
  7. }


На многих сайтах это осуществлено, например сайт www.forteam.ru и т.д.

Мне не лень это самому сделать но я нуждаюсь в вашей помощи.
2. Jampire - 18 Апреля, 2011 - 18:44:48 - перейти к сообщению
_POST заноси в переменную и до запроса отнимай
3. Mr.KreDo - 18 Апреля, 2011 - 18:50:31 - перейти к сообщению
Jampire пишет:
_POST заноси в переменную и до запроса отнимай


Можешь пример написать ? Закатив глазки
4. Mr.KreDo - 18 Апреля, 2011 - 22:05:54 - перейти к сообщению
кто нибудь знает, как сделать данную идею ?
5. VokpAllk - 19 Апреля, 2011 - 00:45:48 - перейти к сообщению
Можешь в транзакцию заключить свой апдейт и инсерт последующий.
А так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $sql = mysql_query("SELECT `balance` FROM `balance` WHERE `chto_to tam` = '' ");
  4.  
  5. // достаем и обрабатываем - получаем новый баланс = $balance // апдейтим
  6.  
  7. $upd = mysql_query("UPDATE `tab` SET `balance` = '".$balance."' WHERE `chto_to_tam` = '' LIMIT 1 ");
  8.  
  9. // вносишь свой инсерт
  10. {
  11.  
  12.    $value1 = mysql_real_escape_string(trim($_POST['value1']));
  13.    $inquiry = mysql_query("INSERT INTO `tab` SET `value1` = '".$value1."' ");
  14. }
  15. // Остальное уже лень писать - сам доработай
  16.  


Кстати, подсказка: никогда так не делай $mess="<center>Заявка добавлена!</center>";
Во-первых, запрос может и не выполниться, а у тебя сразу показывает, что добавлена, безапелляционно.
Во-вторых, выходи через header(Location: 'http://www.sait.ru'); exit(); а там уже показывай.
Это так.. к слову. И не принимай мой код за готовый Подмигивание
6. Shtorm_sai - 19 Апреля, 2011 - 00:56:22 - перейти к сообщению
На сколько я понимаю тебе нужно в один sql запрос объеденить несколько. И на сколько я знаю это возможно если запросы делают одно действие. SELECT, UPDATE,INSERT...
Хотя могу ошибаться. Почитай про JOIN.
7. VokpAllk - 19 Апреля, 2011 - 00:59:40 - перейти к сообщению
На сколько я помню, select и insert одновременно не выполнить....
А JOIN, тоже на сколько помню, используется только для объединения таблиц при выборке, т.е. SELECT запросе...
8. Shtorm_sai - 19 Апреля, 2011 - 01:05:41 - перейти к сообщению
Вот и я про тоже. Что не выполнить. На счёт JOIN тоже точно не скажу. Сам пользовал его только в SELECT. Но факт что, из INSERT к примеру можно сделать сложный запрос, так же как и из DELETE. Но это всё теория, практики практически 0, так что сори если ошибаюсь.
9. OrmaJever - 19 Апреля, 2011 - 01:06:02 - перейти к сообщению
Mr.KreDo отправь 2 запроса и не парься.
10. Mr.KreDo - 19 Апреля, 2011 - 12:28:16 - перейти к сообщению
OrmaJever пишет:
Mr.KreDo отправь 2 запроса и не парься.


OrmaJever, под скажешь , есть ссылка где можно почитать про это ?
11. VokpAllk - 19 Апреля, 2011 - 13:27:42 - перейти к сообщению
http://forum.php.su/topic.php?fo...63148#1303163148
12. Mr.KreDo - 23 Апреля, 2011 - 16:59:45 - перейти к сообщению
Есть запрос который должен редактировать нужную строку в базе

CODE (SQL):
скопировать код в буфер обмена
  1. $result2 = mysql_query("UPDATE FROM users_adm (balance) VALUES ('$_POST[balance]')",$db);


$_POST[spok] - передается число посредством _POST
$_POST[balance] - баланс пользователя

как правильно сделать что бы отнималась нужная цифра ?
13. OrmaJever - 23 Апреля, 2011 - 17:10:41 - перейти к сообщению
Mr.KreDo вы при написании сткриптов выводите ошибки? Вам не кто не говорил что индексы масивов нужно писать в кавычках? А теперь по делу
Mr.KreDo пишет:
как правильно сделать что бы отнималась нужная цифра ?

какая цыфра и от чего отнималась?
14. Mr.KreDo - 23 Апреля, 2011 - 17:49:53 - перейти к сообщению
OrmaJever пишет:
Mr.KreDo вы при написании сткриптов выводите ошибки? Вам не кто не говорил что индексы масивов нужно писать в кавычках? А теперь по делу


OrmaJever

В $_POST[spok] находится сумма, пример ниже

PHP:
скопировать код в буфер обмена
  1. echo "<tr>";
  2. echo "<td class='tbl'>Период:<span style='color: #FF0000'>*</span></td>";
  3. echo "<td class='tbl'><select name='spok' size=1>";
  4. echo "<option value='100' selected>15 дней (100 руб )</option>";
  5. echo "<option value='200'>1 Месяц (200 руб )</option>";
  6. echo "<option value='400'>2 Месяц (400 руб )</option>";
  7. echo "<option value='800'>3 Месяц (800 руб )</option>";
  8. echo "</select></td>";
  9. echo "</tr>";


а $_POST[balance] - баланс пользователя

берется это отсуда

PHP:
скопировать код в буфер обмена
  1.  
  2. $query_search=mysql_query("SELECT * FROM users_adm WHERE login='$_SESSION[user_admin_sp]' ORDER BY id ASC");
  3. $query_list=mysql_fetch_array($query_search);
  4.  
  5. echo "<input type='hidden' name='balance' value='$query_list[balance]'/>";
15. Mr.KreDo - 24 Апреля, 2011 - 19:25:06 - перейти к сообщению
Нужно что бы от баланса пользователя отнималась цифра которая выбрана в select

 

Powered by ExBB FM 1.0 RC1