Увеличьте и уменьшите значение строки на 1 в MySQL

Используйте setState в вашем представлении, чтобы изменить свойство состояния employed. Это пример механизма рендеринга React.

 someFunctionWhichChangeParamEmployed(isEmployed) {
      this.setState({
          employed: isEmployed
      });
 }

 getInitialState() {
      return {
          employed: true
      }
 },

 render(){
    if (this.state.employed) {
        return (
            <div>
                <MyInput ref="job-title" name="job-title" />
            </div>
        );
    } else {
        return (
            <div>
                <span>Diff me!</span>
                <MyInput ref="unemployment-reason" name="unemployment-reason" />
                <MyInput ref="unemployment-duration" name="unemployment-duration" />
            </div>
        );
    }
}
39
задан Gumbo 14 May 2010 в 14:28
поделиться

3 ответа

Два запроса для увеличения / уменьшения значения поля не нужны:

mysql_query("UPDATE table SET field = field + 1 WHERE id = $number");

- вполне допустимый запрос, как вы можете видеть дальше:

mysql> describe points;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| uid    | int(11) | NO   | PRI | NULL    |       |
| points | int(11) | YES  |     | 0       |       |
+--------+---------+------+-----+---------+-------+
2 rows in set (0.05 sec)

mysql> insert into points VALUES (1,0),(2,0);
Query OK, 2 rows affected (0.14 sec)

mysql> select * from points;
+-----+--------+
| uid | points |
+-----+--------+
|   1 |      0 |
|   2 |      0 |
+-----+--------+
2 rows in set (0.05 sec)

mysql> update points set points = points+1 where uid = 1;
Query OK, 1 row affected (0.27 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from points;
+-----+--------+
| uid | points |
+-----+--------+
|   1 |      1 |
|   2 |      0 |
+-----+--------+
2 rows in set (0.00 sec)

После проверки , вы уверены, что попали в предложение if (loggedin ()) ?

Я должен согласиться с KM , было бы неплохо увидеть вывод echo $ query1; или echo $ query2;

76
ответ дан 27 November 2019 в 02:24
поделиться

В laravel Миграции сделайте:

\DB::statement('SELECT @pos:=0;');
\DB::statement('UPDATE users SET company_id = ( SELECT @pos := @pos + 1 ) WHERE `id` = '1';');

, Если хотят изменить все записи, удалите, ГДЕ id = '1'

Это вставит инкремент числа в Ваши записи как:

+-----+------------+
|  id | company_id |
+-----+------------+
|   1 |      1     |
|  12 |      2     |
|  23 |      3     |
+-----+------------+
0
ответ дан 27 November 2019 в 02:24
поделиться

попробуйте добавить что-нибудь, чтобы распечатать вашу фактическую команду SQL, перед if ($ result1 && result2) :

ECHO '$query1='.$query1.'<br>';
ECHO '$query2='.$query2.'<br>';

this поможет увидеть, что он отправляет в базу данных

2
ответ дан 27 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: