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 :: Версия для печати :: Увеличение значения переменной в БД
Форумы портала PHP.SU » » Вопросы новичков » Увеличение значения переменной в БД

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

1. gadalov - 16 Декабря, 2013 - 10:13:47 - перейти к сообщению
Здравствуйте, прошу о помощи. Не знаю как сделать так, чтобы через PHP увеличить значение переменной в таблице БД. Дело в том, что мне нужно изменить это значение у пользователя который запустил этот PHP в столбце (Например rating). Как это реализовать?
2. makbeth - 16 Декабря, 2013 - 10:40:05 - перейти к сообщению
Напишите более развернуто о проблеме. Желательно добавить список полей в Вашей таблице и указать на то поле, значение которого вы собираетесь менять. Еще было бы здорово, если Вы укажете по какому условию это значение должно меняться (что должен сделать пользователь что бы поменялось значение определенной строки).
3. gadalov - 16 Декабря, 2013 - 11:49:54 - перейти к сообщению
makbeth пишет:
Напишите более развернуто о проблеме. Желательно добавить список полей в Вашей таблице и указать на то поле, значение которого вы собираетесь менять. Еще было бы здорово, если Вы укажете по какому условию это значение должно меняться (что должен сделать пользователь что бы поменялось значение определенной строки).


Понял вас. Итак, мне нужно прибавить к целочисленному значению переменной в таблице например 1, с помощью php (т.е. считать её в переменную, прибавить к ней 1 и поместить обратно в бд, но уже новое число), это значение находится в столбце rating, но я не могу определить в какой оно строке. Т.е. у меня есть 30 пользователей. У каждого своя строка со значениями. Мне нужно определить как-то строку в которой я должен внести изменения. Я предположил, что можно как-то определить какой из пользователей запустил скрипт (без авторизации эта страница недоступна). Как это сделать?
4. Panoptik - 16 Декабря, 2013 - 11:57:08 - перейти к сообщению
если пользователь автроризирован - его id - должен быть в сессии, если его там до сих пор нет, то сделайте чтобы был - это ключевой момент для авторизации. вы всегда должны знать идентификатор текущего пользователя

ну и соответственно ваше задание решится само собой. будете облновлять таблицу и в условии укажите тот самый id
5. gadalov - 16 Декабря, 2013 - 12:02:21 - перейти к сообщению
Panoptik пишет:
если пользователь автроризирован - его id - должен быть в сессии, если его там до сих пор нет, то сделайте чтобы был - это ключевой момент для авторизации. вы всегда должны знать идентификатор текущего пользователя

ну и соответственно ваше задание решится само собой. будете облновлять таблицу и в условии укажите тот самый id


Да да, у каждого пользователя есть свой id. Но как мне определить с помощью PHP, пользователь с каким id запустил скрипт?? Или как его считать из сессии??
6. Panoptik - 16 Декабря, 2013 - 12:06:43 - перейти к сообщению
а как у вас пользователь авторизируется? я же не умею угадывать код

если у вас при авторизации id пользователя назначается как-то так

то соответственно получать его нужно с точностью до наоборот
PHP:
скопировать код в буфер обмена
  1. $currentUserId = $_SESSION['userId'];
7. gadalov - 16 Декабря, 2013 - 12:09:32 - перейти к сообщению
Panoptik пишет:
а как у вас пользователь авторизируется? я же не умею угадывать код

если у вас при авторизации id пользователя назначается как-то так

то соответственно получать его нужно с точностью до наоборот
PHP:
скопировать код в буфер обмена
  1. $currentUserId = $_SESSION['userId'];


Да, да, забыл добавить.. Всё работает на Moodle.. Сейчас буду искать в коде что-то похожее.
(Добавление)
Panoptik пишет:
а как у вас пользователь авторизируется? я же не умею угадывать код

если у вас при авторизации id пользователя назначается как-то так

то соответственно получать его нужно с точностью до наоборот
PHP:
скопировать код в буфер обмена
  1. $currentUserId = $_SESSION['userId'];


Вот код блока авторизации.. Что посоветуете???

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class block_login extends block_base {
  4.     function init() {
  5.         $this->title = get_string('pluginname', 'block_login');
  6.     }
  7.  
  8.     function applicable_formats() {
  9.         return array('site' => true);
  10.     }
  11.  
  12.     function get_content () {
  13.         global $USER, $CFG, $SESSION;
  14.         $wwwroot = '';
  15.         $signup = '';
  16.  
  17.         if ($this->content !== NULL) {
  18.             return $this->content;
  19.         }
  20.  
  21.         if (empty($CFG->loginhttps)) {
  22.             $wwwroot = $CFG->wwwroot;
  23.         } else {
  24.             // This actually is not so secure ;-), 'cause we're
  25.             // in unencrypted connection...
  26.             $wwwroot = str_replace("http://", "https://", $CFG->wwwroot);
  27.         }
  28.  
  29.         if (!empty($CFG->registerauth)) {
  30.             $authplugin = get_auth_plugin($CFG->registerauth);
  31.             if ($authplugin->can_signup()) {
  32.                 $signup = $wwwroot . '/login/signup.php';
  33.             }
  34.         }
  35.         // TODO: now that we have multiauth it is hard to find out if there is a way to change password
  36.         $forgot = $wwwroot . '/login/forgot_password.php';
  37.  
  38.         if (empty($CFG->xmlstrictheaders) and !empty($CFG->loginpasswordautocomplete)) {
  39.             $autocomplete = 'autocomplete="off"';
  40.         } else {
  41.             $autocomplete = '';
  42.         }
  43.  
  44.         $username = get_moodle_cookie();
  45.  
  46.         $this->content->footer = '';
  47.         $this->content->text = '';
  48.  
  49.         if (!isloggedin() or isguestuser()) {   // Show the block
  50.  
  51.             $this->content->text .= "\n".'<form class="loginform" id="login" method="post" action="'.get_login_url().'" '.$autocomplete.'>';
  52.  
  53.             $this->content->text .= '<div class="c1 fld username"><label for="login_username">'.get_string('username').'</label>';
  54.             $this->content->text .= '<input type="text" name="username" id="login_username" value="'.s($username).'" /></div>';
  55.  
  56.             $this->content->text .= '<div class="c1 fld password"><label for="login_password">'.get_string('password').'</label>';
  57.  
  58.             $this->content->text .= '<input type="password" name="password" id="login_password" value="" '.$autocomplete.' /></div>';
  59.  
  60.             $this->content->text .= '<div class="c1 btn"><input type="submit" value="'.get_string('login').'" /></div>';
  61.  
  62.             $this->content->text .= "</form>\n";
  63.  
  64.             if (!empty($signup)) {
  65.                 $this->content->footer .= '<div><a href="'.$signup.'">'.get_string('startsignup').'</a></div>';
  66.             }
  67.             if (!empty($forgot)) {
  68.                 $this->content->footer .= '<div><a href="'.$forgot.'">'.get_string('forgotaccount').'</a></div>';
  69.             }
  70.         }
  71.  
  72.         return $this->content;
  73.     }
  74. }
  75.  
  76.  
  77.  

 

Powered by ExBB FM 1.0 RC1