Vamp » 2014.09.27 08:18

Привет, Подскажите как записать в БД в поле адрес сайта

например в таблице есть поле title там хранится заголовок статьи, мне надо во все заголовки которые там записани  добавить адрес сайта.
Статей в БД больше 50 000.

напишите какой запрос выполнить в БД чтобы добавить адрес сайта к всем статьям?

Gemorroj » 2014.09.27 09:51

структуру таблицы давай

Vamp » 2014.09.27 16:51

mysql_query("INSERT INTO `bib` SET `title` = '".$title."', `text` = '".$text."', `time` = '".time()."'");

такой запрос добавляет статьи
Добавлено спустя   9 минут  29 секунд:
также есть у меня сервисная библиотека статей,
как сделать такую настройку в phpmyadmin чтобы когда через скрипт добавляется запись в БД чтобы автоматически вставлялся адрес сайта в ету запись?

Gemorroj » 2014.09.27 17:16

Код:

1
UPDATE bib SET title = CONCAT(title, ' твой текст');

Добавлено спустя   1 минуту  28 секунд:
по поводу автоматизации. можно триггером решить. но думаю, тебе лучше найти то место в коде где вставляется заголовок и там его модифицировать.

Vamp » 2014.09.27 17:18

Gemorroj спасибо огрномное.

а второй вопрос неполскажешь как?
Добавлено спустя   1 минуту  6 секунд:
Gemorroj БД только у меня, скрипт на других сайтах

Vamp » 2014.09.27 17:40

поможешь с етим?

Gemorroj » 2014.09.27 18:50

Код:

1
2
3
4
5
6
7
DELIMITER //
CREATE TRIGGER `insert_bib` BEFORE INSERT ON `bib`
FOR EACH ROW BEGIN
SET NEW.title = CONCAT(NEW.title, ' твой текст');
END
//
DELIMITER ;
Vamp » 2014.09.27 20:12

Gemorroj ето SOL запрос выполнить в БД?

Gemorroj » 2014.09.27 20:19

Да. У тебя появится триггер, который будет вызываться после любых INSERT в таблицу bib.

Vamp » 2014.09.27 20:43

Gemorroj
Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.
ERROR: Неизвестная пунктуация @ 11
STR: //
SQL: DELIMITER //
CREATE TRIGGER `insert_n_squery` AFTER INSERT ON `n_squery`
FOR EACH ROW BEGIN
    UPDATE n_vksquery SET query = CONCAT(query, ' site') WHERE id = NEW.id;
END;//
DELIMITER //
CREATE TRIGGER `insert_n_squery` AFTER INSERT ON `n_squery`
FOR EACH ROW BEGIN
    UPDATE n_vksquery SET query = CONCAT(query, ' site') WHERE id = NEW.id;
END;//
DELIMITER //
CREATE TRIGGER `insert_n_squery` AFTER INSERT ON `n_squery`
FOR EACH ROW BEGIN
    UPDATE n_vksquery SET query = CONCAT(query, ' site') WHERE id = NEW.id;
END;//



SQL-запрос:

DELIMITER // CREATE TRIGGER `insert_n_squery` AFTER INSERT ON `n_squery` FOR EACH ROW BEGIN UPDATE n_squery SET query = CONCAT(query, ' site') WHERE id = NEW.id; END;//

Ответ MySQL: 
#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

Gemorroj » 2014.09.27 20:55

ну ты сразу много триггеров пытаешься записать, как я вижу. и не указал последний делимитер ;

Vamp » 2014.09.27 21:08

напиши подробно

Gemorroj » 2014.09.27 21:10

скопируй и выполни запрос.. что еще тут рассказывать..

Vamp » 2014.09.27 21:16

DELIMITER 50000;
Добавлено спустя   3 минуты  55 секунд:
делаю такой запрос и ошибка

Gemorroj » 2014.09.27 21:42

а зачем ты делаешь такой запрос? делай запрос как я написал выше.

Gemorroj » 2014.09.27 21:54

Подправил триггер. Скопируй его полностью и выполни. Замени только "твой текст".

Vamp » 2014.09.27 22:48

Ошибка

Вероятно, SQL-запрос содержит ошибку. При наличии таковой, ниже будет выведена ошибка MySQL-сервера, облегчающая диагностику проблемы.
ERROR: Неизвестная пунктуация @ 11
STR: //
SQL: DELIMITER //
CREATE TRIGGER `insert_songs` BEFORE INSERT ON `songs`
FOR EACH ROW BEGIN
SET NEW.artist = CONCAT(NEW.artist, ' site');
END
//
DELIMITER //
CREATE TRIGGER `songs` BEFORE INSERT ON `songs`
FOR EACH ROW BEGIN
SET NEW.artist = CONCAT(NEW.artist, ' site');
END
//
DELIMITER //
CREATE TRIGGER `insert_songs` BEFORE INSERT ON `songs`
FOR EACH ROW BEGIN
SET NEW.artist = CONCAT(NEW.artist, ' site');
END
//



SQL-запрос:

DELIMITER // CREATE TRIGGER `insert_songs` BEFORE INSERT ON `n_songs` FOR EACH ROW BEGIN SET NEW.artist = CONCAT(NEW.artist, ' site'); END //

Ответ MySQL: 
#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
Добавлено спустя   1 минуту  1 секунду:
блин что там не так

Gemorroj » 2014.09.27 23:20

как ты sql запрос выполняешь? и почему ты выполняешь вставку 3-х триггеров, а не одного???

Vamp » 2014.09.27 23:24

захожу в База данных: bib   Таблица : songs потом  SQL-запрос(ы)
и вставляю ето
DELIMITER // CREATE TRIGGER `insert_songs` BEFORE INSERT ON `n_songs` FOR EACH ROW BEGIN SET NEW.artist = CONCAT(NEW.artist, ' site'); END //

Gemorroj » 2014.09.27 23:27

ты не полностью sql запрос скопировал, где последний DELIMITER ;? и куда ты заходишь? в phpmyadmin?

Vamp » 2014.09.27 23:55

захожу в phpmyadmin База данных: bib Таблица: songs потом SQL-запрос(ы)
и вставляю ето
DELIMITER //
CREATE TRIGGER `insert_songs` BEFORE INSERT ON `songs`
FOR EACH ROW BEGIN
SET NEW.artist = CONCAT(NEW.artist, ' site');
END
//
DELIMITER ;

Gemorroj » 2014.09.27 23:56

ну должно быть все ок.

Vamp » 2014.09.27 23:57

и жму ОК
Добавлено спустя   1 минуту  10 секунд:
но ошибка почемуто

делал такой запрос и в пустую таблицу и тоже ошибка

Gemorroj » 2014.09.28 00:06

попробуй через консоль.

Vamp » 2014.09.28 00:10

нету програмы