Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
1

Каждый раз в бд создается новая строчка

23.06.2016, 17:10. Показов 1133. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
проблема такая, при авторизации пользователя через Ulogin
PHP
1
2
3
            //$user['identity'] - уникальная строка определяющая конкретного пользователя соц. сети
                    //$user['first_name'] - имя пользователя
                    //$user['last_name'] - фамилия пользователя
заносятся в таблицу. Но каждый раз создается новая строчка, нужно сделать проверку по столбцу identity . Если совпадет с $user['identity'] зашедшего пользователя,то найти id строчки и занести данные туда(чтобы обновить их), если ничего не нужно (т.к код для этого у меня есть). Пожалуйста помогите,очень нужно)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2016, 17:10
Ответы с готовыми решениями:

Почему при переходе на новую страницу создается новая сессия?
При переходе на новую страницу сессия не сохранняетса а создаетса новая сессия проверял по id...

Каждый раз новая таблица на каждый новый день
Есть "таблица", я вношу в неё данные, сохраняю, закрываю. На следующий день, допустим, Я открываю...

Каждый раз новая ячейка Excel
Здраствуйте Помогите плиз Надо такой код который, помещал данные с формы в таблицу Excel, но...

BSOD каждый раз новая ошибка
Bsod случайным образом в играх. В абсолютно любой промежуток времени, вне зависимости от условий.

9
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
23.06.2016, 17:50 2
Rva4, если я Вас правильно понял, то как-то так:
(Пример кода приведен с использованием этой обертки: https://www.cyberforum.ru/post9301371.html)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$existingUser = qb()->table('имя_таблицы')->select()->where(['identity' => $user['identity']])->one();
 
if ($existingUser) {
    qb()->table('имя_таблицы')->update([
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ])->where(['id' => $existingUser['id']])->run();
} else {
    qb()->table('имя_таблицы')->insert([
        'identity' => $user['identity'],
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ])->run();
}
Если в базе есть пользователь с таким identity, то обновляем для него first_name и last_name. Иначе добавляем пользователя в базу.
1
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
23.06.2016, 18:09  [ТС] 3
Спасибо большое, не подскажите как исправить ошибку с этой оберткой : Parse error: syntax error, unexpected '[', expecting ')' и куда вписывать имя бд?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
require_once 'sql-query-master/function.qb.php';
 
$existingUser = qb()->table('users1')->select()->where(['identity' => $user['identity']])->one();
 
if ($existingUser) {
    qb()->table('users1')->update([
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ])->where(['id' => $existingUser['id']])->run();
} else {
    qb()->table('users1')->insert([
        'identity' => $user['identity'],
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ])->run();
}
Добавлено через 6 минут
Custos, Спасибо большое, не подскажите как исправить ошибку с этой оберткой?
0
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
23.06.2016, 18:11 4
Rva4, какая версия php у тебя? Ниже 5.4 ?
1
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
23.06.2016, 18:11  [ТС] 5
Custos, Parse error: syntax error, unexpected '[', expecting ')'
0
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
23.06.2016, 18:15 6
Rva4, если у тебя версия php ниже, чем 5.4, то вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$existingUser = qb()->table('users1')->select()->where(array('identity' => $user['identity']))->one();
 
if ($existingUser) {
    qb()->table('users1')->update(array(
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ))->where(array('id' => $existingUser['id']))->run();
} else {
    qb()->table('users1')->insert(array(
        'identity' => $user['identity'],
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ))->run();
}
1
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
23.06.2016, 18:23  [ТС] 7
Custos, да,
PHP Logo
PHP Version 5.3.13
0
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
23.06.2016, 18:25 8
Лучший ответ Сообщение было отмечено Rva4 как решение

Решение

Rva4, ну вот, тогда этот код должен работать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$existingUser = qb()->table('users1')->select()->where(array('identity' => $user['identity']))->one();
 
if ($existingUser) {
    qb()->table('users1')->update(array(
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ))->where(array('id' => $existingUser['id']))->run();
} else {
    qb()->table('users1')->insert(array(
        'identity' => $user['identity'],
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ))->run();
}
1
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
23.06.2016, 18:41  [ТС] 9
Custos, Спасибо,заработало)
0
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
23.06.2016, 18:42 10
Rva4, не за что. Если будут вопросы по работе с библиотекой, то обращайтесь. В теме с описанием указаны контакты.
0
23.06.2016, 18:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2016, 18:42
Помогаю со студенческими работами здесь

Синий экран и каждый раз новая ошибка
Пациент: Intel Core 2 Quad CPU Q6600 @ 2.40GHz Biostar P965 775 Ver. 5.1 NVIDIA GeForce 210 ...

BSOD Win7. Каждый раз новая причина
Приветствую всех. Я уже исчерпал все варианты, перерыл весь интернет, проверил все что знал....

Почему при изменении окна каждый раз создается новый обьект?
сам код: import java.awt.BorderLayout; import java.awt.Button; import...

Проблема с IIS под Win2K. При переходе от одной страницы приложения каждый раз стартует новая сессия.
Странные проблемы с IIS под Win2K Professional. При переходе от одной страницы приложения каждый...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru