powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP & MySQL) Проверить запись, обновить или добавить !
30 сообщений из 30, показаны все 2 страниц
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042536
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ!
Заклинило напрочь, как сделать конструкцию на проверку существующей записи в базе MySQL?
Что мне нужно: если запись существует, то обновить её данные, если её нет то произвести запись в бд.

ПОМОГИТЕ ПЛИЗ !!!!

$zapros = "SELECT COUNT(*) from `demo` WHERE test='$test'";
$result=mysql_query($zapros, $soedinenie);
if (mysql_num_rows($result))
{
$zapros1 = "UPDATE `demo` set teni='$teni' WHERE test='$test'";
$result1=mysql_query($zapros1, $soedinenie);
} else {
$zapis = "insert into `demo` (test, name, opisanie, dopinfo, visual) VALUES ('$test', '$teni', '$opisanies', '$dopinfos', '$visual')";
$result2=mysql_query($zapis, $soedinenie);
}
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042540
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте синтаксис INSERT ... ON DUPLICATE KEY UPDATE.
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042543
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlИспользуйте синтаксис INSERT ... ON DUPLICATE KEY UPDATE.
DocAl, для тупых - это для меня, как его использовать? Покажи плиз на моем примере??? :-)
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042567
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
INSERT ... ON DUPLICATE KEY UPDATE отподает, нужно стандартными средствами INSERT, UPDATE, SELECT.

КТО-НИБУДЬ МОЖЕТ ПОМОЧЬ???
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042572
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можа не пашет, потому что в цикле стоит?
автор for ($i=0;$i<$base;$i++)
{
Тут код проверки
}

КАК ЗАСТАВИТЬ РАБОТАТЬ??? HEEEEEEELLLPPPPPP
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042573
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dracula INSERT ... ON DUPLICATE KEY UPDATE отподает, нужно стандартными средствами INSERT, UPDATE, SELECT.

КТО-НИБУДЬ МОЖЕТ ПОМОЧЬ??? зачем?
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042664
alonecat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<?
mysql_query("update table set name='$name' where id=$id");
if(!mysql_affected_rows())
mysql_query("insert into table (id, name) values($id, '$name')");
?>
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042725
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alonecat<?
mysql_query("update table set name='$name' where id=$id");
if(!mysql_affected_rows())
mysql_query("insert into table (id, name) values($id, '$name')");
?>
Не пашет нифига !!! Перебрал кучу вариантов, то одно работает, другое нет, то в обратном порядке.
Есть нормальный рабочий вариант в цикле ???
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042726
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAl Dracula INSERT ... ON DUPLICATE KEY UPDATE отподает, нужно стандартными средствами INSERT, UPDATE, SELECT.

КТО-НИБУДЬ МОЖЕТ ПОМОЧЬ??? зачем?
DocAl, ну напиши как с этой INSERT ... ON DUPLICATE KEY UPDATE будет в моем варианте, если тебе не сложно. Если знаешь как будет работать в данной ситуации, то помоги плиз !!!
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042742
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
УРАААААААААА!!! Сработало вот так!!

for ($i=0;$i<$base;$i++)
{
$zapros = "SELECT * from `demo` WHERE test=$test";
$result=mysql_query($zapros, $soedinenie);
if (!mysql_num_rows($result))
{
$zapros = "UPDATE `demo` set teni='$teni' WHERE test=$test";
$result=mysql_query($zapros, $soedinenie);
} elseif (0 < mysql_affected_rows())
{
$zapros = "insert into `demo` (test, teni, opisanie, dopinfo, visual) VALUES ('$test', '$teni', '$opisanies', '$dopinfos', '$visual')";
$result = mysql_query($zapros, $soedinenie);
}
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042758
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DraculaУРАААААААААА!!! Сработало вот так!!До времени... пока две сессии туда не ломанутся...
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042825
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну предложи по другому ;-) Как будет качественно.
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35042990
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DraculaНу предложи по другому ;-) Как будет качественно.INSERT ... ON DUPLICATE KEY UPDATE вам уже предлагали.
Еще можно воспользоваться конструкцией SELECT ... FOR UPDATE.
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043109
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗАБУБЕНИЛ ТАК - ВРОДЕ РАБОТАЕТ! ПРАВИЛЬНО СДЕЛАЛ?

for ($i=0;$i<$base;$i++)
{
$zapros = "SELECT * from `demo` WHERE test=$test";
$result=mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');
if (!mysql_num_rows($result))
{
$zapros = "insert into `demo` (test, teni, opisanie, dopinfo, visual) VALUES ('$test', '$teni', '$opisanies', '$dopinfos', '$visual')
ON DUPLICATE KEY UPDATE
`teni`=VALUES(`teni`)";
$result = mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');
}
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043116
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОБНОВЛЕНИЯ НЕ ПАШУТ!!!! ПОМОГИТЕ ПЛИЗ СДЕЛАТЬ!!!!
УНИКАЛЬНЫЙ ЦИФРОВОЙ КОД - test .


CREATE TABLE `demo` (
`id` int(11) NOT NULL auto_increment,
`test` int(11) NOT NULL default '0',
`teni` text NOT NULL,
`opisanie` text NOT NULL,
`dopinfo` text NOT NULL,
`visual` text NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;




for ($i=0;$i<$base;$i++)
{
$zapros = "SELECT * from `demo` WHERE test=$test";
$result=mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');
if (!mysql_num_rows($result))
{
$zapros = "insert into `demo` (test, teni, opisanie, dopinfo, visual) VALUES ('$test', '$teni', '$opisanies', '$dopinfos', '$visual')
ON DUPLICATE KEY UPDATE
`teni`=VALUES(`teni`)";
$result = mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');
}
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043230
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РАБОТАЕТ ТАК ТОЖЕ!!!



for ($i=0;$i<$base;$i++)
{
$zapros = "SELECT * from `demo` WHERE test=$test";
$result=mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');

if (mysql_affected_rows()==0)
{
$zapros = "insert into `demo` (test, teni, opisanie, dopinfo, visual) VALUES ('$test', '$teni', '$opisanies', '$dopinfos', '$visual')";
$result = mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');

} else {
$zapros = "UPDATE `demo` SET teni='$teni' WHERE test=$test";
$result=mysql_query($zapros, $soedinenie) or die('Не могу сделать запрос к базе данных');
}
}



НЕУЖЕЛИ ЗДЕСЬ ВСЕ ТЕОРЕТИКИ, НИКТО НЕ МОЖЕТ ПОМОЧЬ СДЕЛАТЬ ПРАВИЛЬНО?
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043245
alonecat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте описать поподробней саму задачу.
Возможно тогда что то подскажут.
Также наверно стоило бы почитать какую нибудь, хорошую книгу по PHP и MySql
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043326
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dracula НЕУЖЕЛИ ЗДЕСЬ ВСЕ ТЕОРЕТИКИ, НИКТО НЕ МОЖЕТ ПОМОЧЬ СДЕЛАТЬ ПРАВИЛЬНО?
ДОКУМЕНТАЦИЮ ЧИТАТЬ НЕ ПРОБОВАЛИ?
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35043331
Dracula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВОТ ИМЕННО, КРОМЕ ТАКИХ СООБЩЕНИЙ БОЛЬШЕ НИЧЕГО НЕТ. И ТАК ДО ВЕРХА. ТОЛЬКО ОДНО - ЧИТАЙ ДОКУМЕНТАЦИЮ, ИСПОЛЬЗУЙ ТО ДА СЁ И НА ЭТОМ ВСЕ. НИ ОДИН ЧЕЛОВЕК НЕ ПРИВЕЛ РАБОТАЮЩИЙ ПРИМЕР - НИ ОДИН. В РЕАЛЕ КТО СООБРАЖАЕТ В ПХП - 20 СЕКУНД НУНО НА КОРРЕКТИРОВКУ МОЕГО ТЕКСТА - КАК ЖЕ ЛЕНЬ, ВЫШЕ ВАШЕГО ДОСТОИНСТВА ЧЕЛОВЕКУ ПОМОЧЬ. Я НЕ ПРОГРАММИСТ И НЕ СОБИРАЮСЬ ИМ БЫТЬ, У МЕНЯ ЕСТЬ СВОЯ РАБОТА И ВРЕМЕНИ ИЗУЧАТЬ PHP У МЕНЯ НЕТ. ТЕМ БОЛЕЕ ТРАТИТЬ НЕСКОЛЬКО МЕСЯЦЕВ НА РАЗБОР ЯЗЫКА ДЛЯ РЕАЛИЗАЦИИ ПРОСТЕЙШИХ ЗАДАЧ Я НЕ БУДУ. ЭТИ ЗАДАЧИ Я РЕШУ ВСЕ РАВНО, С ВАШЕЙ ПОМОЩЬЮ ИЛИ БЕЗ, НО РЕШУ.
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #35045037
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посчитайте сколько пунктов вы нарушили из данных советов:

"Как правильно задавать вопросы"

После этого задайте СЕБЕ вопрос, почему же вам никто не хочет отвечать...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732568
not-one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажыте в чём проблема:
делаю запрос $query = "UPDATE dle_post SET full_story = REPLACE(full_story, $file, $filenew)";
пишет "Query was empty"
суть такова в таблице dle_post в поле full_story у меня:

текст...
http://site.ru/show/232/xxxxxxxxxxx.rar
текст...

...

$file=("xxxxxxxxxxx");
надо заменить на
$filenew=("yyyyyyyyyyy");

никак не получается((
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732649
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
not-oneподскажыте в чём проблема:
делаю запрос $query = "UPDATE dle_post SET full_story = REPLACE(full_story, $file, $filenew)";
пишет "Query was empty"
суть такова в таблице dle_post в поле full_story у меня:

текст...
http://site.ru/show/232/xxxxxxxxxxx.rar
текст...

...

$file=("xxxxxxxxxxx");
надо заменить на
$filenew=("yyyyyyyyyyy");

никак не получается((

Код: php
1.
$query = "UPDATE dle_post SET full_story = REPLACE(full_story, $file, $filenew)";



Этой строчкой вы всего лишь присвоили переменной $query текст запроса.

Покажите как вы выполняете запрос. Где у вас вызов mysql_query() (или аналогов)? как вы получаете и обрабатываете результат, полученный от mysql_query() ?

И, кстати, прежде чем напрямую в запрос вставлять переменные - почитайте про SQL Injections. И даже если пока не заморачиваться - всё равно вам нужно взять переменные в одинарные кавычки , иначе созданный запрос будет грамматически невалидным:

Код: php
1.
$query = "UPDATE dle_post SET full_story = REPLACE(full_story, '$file', '$filenew')";
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732875
not-one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anvanoПокажите как вы выполняете запрос. Где у вас вызов mysql_query() (или аналогов)? как вы получаете и обрабатываете результат, полученный от mysql_query() ?

оу, не знал что надо еще что-то, может этот вариант правельный:
Код: php
1.
$sql = mysql_query("UPDATE dle_post SET full_story =REPLACE(full_story, '$file', '$filenew')");



просто долго лазил по форумах, и в большенстве читал что все так делают запросы:
$sql = mysql_query....или $query = ....
я в php мало знаю, а в базах тем более, не подкажыте как это правильнее зделать))
и еще один маленький вопросик)
файл с этим кодоп я подключил в index.php "require "pars.php";" это небольшой парсер своих же страниц, для проверки и замены некоторых ссылок, но вот столкнулся с проблемой, сначала теслил скрипт отдельно, он роботал
когда $URL брала чётко заданую страницу
Код: php
1.
2.
$URL="index.php";
$content=file_get_contents($URL);


а вот когда я прописал
Код: php
1.
2.
$url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$content=file_get_contents($url);


что проверка проводилась на странице на которой находимся, то file_get_contents не выполняется, и сайт виснет, никак немогу понять почему он не может оброботать ссылку,
поскольку если происать
Код: php
1.
echo $url;

то ссылка отлично отображается(правильно)
спасибо за помощь)
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732884
not-one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ура, с запросом в базу розобрался))
Код: php
1.
2.
$sql = "UPDATE dle_post SET full_story =REPLACE(full_story, '$file', '$filenew')";
$result = mysql_query($sql) or die(mysql_error());



но с
Код: php
1.
2.
$url = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$content=file_get_contents($url);


пока плохо((
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732889
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че за адская рекурсия?
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732913
not-one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм...постараюсь обяснить)
файл скрипта находится в корне сайта
/pars.php
я подключил его в index.php - require "pars.php";
и мне надо чтобы $url считивалась с той страницы на которой я нахожусь, тесть это можеть быть:
http://test.ru/main/7-dhfjdhfjdfkhsdjfhskjdf.html
или
http://test.ru/main/2-njlvnfdvdf.html
или...
много
тоесть надо чтобы $url сам строил станицу, поэтому выбрал такое значение
Код: php
1.
"http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];


оно строит страницу правильно, но потом выходит ошыбка в
Код: php
1.
$content=file_get_contents($url);
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732923
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
not-one,

Если правильно понимаю, Вам нужно разобрать REQUEST_URI и сформировать нужную страницу. Однако, совершенно не понятно, какое это имеет отношение к теме обновления записей в СУБД, открытой четыре года назад. Если есть какое-то отношение - покажите его, если нет - откройте свой топик.
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37732928
not-one
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это отношение не имеет, то что имело отношение я уже выяснил, и между слов спросил еще нащот этого)
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37733042
zadrot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему нельзя сделать поле test UNIQUE INDEX KEY и использовать стандартный REPLACE?
...
Рейтинг: 0 / 0
(PHP & MySQL) Проверить запись, обновить или добавить !
    #37733044
zadrot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zadrotпочему нельзя сделать поле test UNIQUE INDEX KEY и использовать стандартный REPLACE?если уж мозгов не хватает простейший алгоритм накодить
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP & MySQL) Проверить запись, обновить или добавить !
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]