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 :: не срабатывает функция update в sql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: не срабатывает update
dorofej85
Отправлено: 05 Июля, 2017 - 14:34:42
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




почему не срабатывает update после формы - вот код

<form action="updates.php" method="post">
Укажите имя пользователя - получателя перевода: <br>
<input type="text" name="komu" value=""> <br>
Укажите сумму перевода: <br>
<input type="text" name="summ" value=""> <br>
<input type="hidden" name="action" value="perevod">
<input type="submit" value="Выполнить перевод">
</form>

вот сам updates

<?php
$db_login='root';
$db_host='localhost';
$db_name='mysql';
$db_pass='';
mysql_connect($db_host,$db_login,$db_pass);
mysql_select_db($db_name);
if (isset($_POST['komu'])) {$komu = $_POST['komu']; if ($komu == ''){unset($komu);}}
if (isset($_SESSION['id'])) {$session = $_SESSION['id']; if ($session == ''){unset($session);}}
if (isset($_POST['summ'])) {$sum = $_POST['summ']; if ($sum == ''){unset($sum);}}
if (isset($_POST['action']) AND $_POST['action']=='perevod') {
require_once 'db.php';
$poluchatel = mysql_query("SELECT * FROM table_user WHERE username=$komu");
$otpravitel = mysql_query("SELECT * FROM table_user WHERE username=$session");
$summ = floatval($_POST['summ']);
if (isset($_POST['summ'])) mysql_query('UPDATE `table_user` SET `sum` = `sum` +'.$sum.' WHERE `username`='.$komu.'');
else echo 'Ошибка';
}

//var_dump($poluchatel);

print_r ($_POST);

?>
не срабатывае именно ('UPDATE `table_user` SET `sum` = `sum` +'.$sum.' WHERE `username`='.$komu.''); то есть значение не увеличивается на сумму $sum
 
 Top
Vladimir Kheifets
Отправлено: 06 Июля, 2017 - 10:49:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




dorofej85 пишет:
почему не срабатывает update после формы - вот код
........................
if (isset($_POST['summ'])) mysql_query('UPDATE `table_user` SET `sum` = `sum` +'.$sum.' WHERE `username`='.$komu.'');
else echo 'Ошибка';
}


Добрый день!
Ошибка в конце с кавычками здесь ='.$komu.'').
написано так:
PHP:
скопировать код в буфер обмена
  1. mysql_query('UPDATE `table_user` SET `sum` = `sum` +'.$sum.' WHERE `username`='.$komu.'');

Должно быть:
PHP:
скопировать код в буфер обмена
  1. mysql_query("UPDATE `table_user` SET `sum` = `sum` +".$sum." WHERE `username`='".$komu."'");


Если что-то не работает используйте or die( mysql_error())
Например:
PHP:
скопировать код в буфер обмена
  1. mysql_query('UPDATE `table_user` SET `sum` = `sum` +'.$sum.' WHERE `username`='.$komu.'') or die( mysql_error());

(Отредактировано автором: 06 Июля, 2017 - 10:54:21)

 
 Top
dorofej85
Отправлено: 06 Июля, 2017 - 15:27:41
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




а как тогда вывести переменную username - в коде
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'username',
'auth_key',
'password_hash',
'password_reset_token',
'email:email',
'status',
'sum',
'created_at',
'updated_at',
],
]) ?>
<?=
$db_login='root';
$db_host='localhost';
$db_name='mysql';
$db_pass='';
mysql_connect($db_host,$db_login,$db_pass);
mysql_select_db($db_name);
$sql_select = "SELECT * FROM tranzakcii WHERE `username`='".$komu."'";
$result = mysql_query($sql_select);
$row = mysql_fetch_array($result);
if($row)
{
printf("<p>Пользователь: " .$row['username'] . " </p>
<p>Сумма перевода</p>: " .$row['skolko'] ."</p>
");
}
else{echo ("Пользователя с таким именем в базе нет");}


?> вот сам код - нужно чтобы выводился $row['username'] но видимо '".$komu."'" не читает в запросе SELECT хотя сама инфа пользователя выводится DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'username', вот как теперь его вывести printf("<p>Пользователь: " .$row['username'] . " </p> вопрос какой запрос тогда построить в селект и- вот скрин текущего https://pastenow[dot]ru/483bd00648d6[dot][dot][dot]85fefdc20ffb2ed1
(Добавление)
за пред идущий очень спасибо
 
 Top
Vladimir Kheifets
Отправлено: 06 Июля, 2017 - 16:32:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




dorofej85 пишет:
а как тогда вывести переменную username - в коде
вот сам код - нужно чтобы выводился $row['username'] но видимо '".$komu."'" не читает в запросе SELECT

Я уже советовал Вам во всех непонятных случаях использовать or die( mysql_error()).
Попробуйте распечатать значение переменой $sql_select затем скопировать результат,
зайти на MySQLAdmin в таблицу tranzakcii, и в закладке SQL ввести команду, которую Вы скопировали. Иногда результат удивляет...
Вы уверены в том, что у пользователя может быть только одна транзакция?

(Отредактировано автором: 06 Июля, 2017 - 16:33:05)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB