Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 263
1

Не создавать запись в БД если она уже существует а просто обновить

24.06.2015, 14:32. Просмотров 679. Ответов 4
Метки нет (Все метки)

Доброго всем дня.
Ситуация такая, есть БД MSSQL и php скрипт добавления данных
Задача в следующем, как реализовать так чтобы, если например по полю "email" запись существует, то просто обновить данные других полей. А если запись с таким email не найдена, то соответственно её создать.
Поделитесь пожалуйста примером, кому не сложно, то есть как в php прописать эти условия.
P.S.: сильно не пинайтесь, я новичок в этом деле
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2015, 14:32
Ответы с готовыми решениями:

Как при сохранении файла создавать директорию, если она не существует?
Хочу записать файл (SaveToFile) в директорию, предварительно создав эту директорию

Как программно удалить кнопку которую программно создал но только если она уже существует
Есть ScrollView в котором много компонентов,чтоб не выводить сразу все решил выводить по 10 штук и...

Как создавать файлы вида filename_(1).foo . filename_(N).foo если filename.foo уже существует ?
Приветствую ! Вот и вопрос: если filename.foo существует, как создать новый filename_(1).foo,...

Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное значение. Как реализовать?
Если запись в столбце существует, то ничего не делать, если запись отсутствует, то записать нужное...

Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует?
Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он...

4
Июнь
Заблокирован
24.06.2015, 15:35 2
Смотрите INSERT IGNORE или ON DUPLICATE KEY UPDATE.
0
Belonard
10 / 10 / 11
Регистрация: 11.06.2015
Сообщений: 50
24.06.2015, 18:30 3
Просто перед тем как что-либо делать, можно посмотреть первым запросом сколько есть записей в базе с таким email, если кол-во строк 0, значит такого мыла нет в базе, а если больше 0, то нужно обновлять

SQL
1
SELECT COUNT(email) FROM `clients` WHERE `email`='123@mail.ru'
PHP
1
if ( $count == 0 )
SQL
1
2
INSERT INTO `clients` (code, email)
VALUES (777, 'newmail@yandex.ru');
PHP
1
else
SQL
1
UPDATE `table` SET code='888' WHERE email='123@mail.ru'
0
pacanchik2013
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 263
25.06.2015, 09:15  [ТС] 4
Belonard, code это что, id? И мне кажется SET в MSSQL не прокатит...
То есть, примерно так должно быть?
PHP
1
2
3
4
5
6
7
8
9
<?
...
$sql = "SELECT COUNT(email) FROM dbo.clients WHERE email = '$pole_email'";
if ($sql == 0)
echo "записей нет";
else
echo "записей: " .$sql;
..
?>
Добавлено через 29 минут
Делал сейчас так:

PHP
1
2
3
4
5
6
$sql = mssql_query("SELECT COUNT (*) FROM clients WHERE user_id = '48'");
$rows = mssql_num_rows($sql);
if ($sql == 0)
echo "записей нет";
else
echo "записей: " .$rows;
Кажет всего одну запись, вместо 28, даже если не существующий id выставить, все равно 1 запись... Что за фигня то такая...?
0
Belonard
10 / 10 / 11
Регистрация: 11.06.2015
Сообщений: 50
25.06.2015, 14:46 5
pacanchik2013, я не знаю как работает MSSQL с PHP, поэтому написал тольку логику.
Запрос
SQL
1
SELECT COUNT(email) FROM `clients` WHERE `email`='123@mail.ru'
Подсчитывает сколько найдено совпадений заданного email, он не содерждит в себе сами строки. Результат выполнения запроса 1 строка, внутри которой лежит искомое число совпадений.
Узнав это число, мы сможем понять что нам делать дальше. Если совпадений ноль, то бы должны сделать INSERT, а если всё-таки что-то есть в базе, то обновить через UPDATE
0
25.06.2015, 14:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2015, 14:46

Зачем создавать безымянное пространство имён, если я могу просто написать static?
Народ, прочитал что в С++ для объявления статической глобальной переменной используют вот такую...

Удаление папки, если она не существует
Если в коде есть к примеру Directory.Delete(@installedPath + @&quot;\\Data\\dialogueviews&quot;, true);...

Как обновить компоненты программы если она скрыта?
Здравствуйте, как обновить компоненты программы которая скрыта, она сама обновляет компоненты когда...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru