Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: массовое добавление титле в бд
Покинул форум
Сообщений всего: 101
Дата рег-ции: Май 2011
Помог: 0 раз(а)
товарищи помогите сделать, допустим есть текстовой файл с каждой строки титл название
нужен скрипт который будет брать каждое значение и добавлять в базу данных если есть это значение титл то не добавляем.
либо через файл что бы брался титл либо через textarea
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
ATOM конкретизируйте
с вашей постановкой задачи никто не поможет
ATOM
Отправлено: 21 Февраля, 2012 - 21:31:01
Гость
Покинул форум
Сообщений всего: 101
Дата рег-ции: Май 2011
Помог: 0 раз(а)
поясню вот есть mysql база данных пусть таблица называется post нужна добавить массово туда значение title то есть, у нас имеется файл title.txt нужен скрипт что бы при его запуске он брал с каждой строки значение title и вносил его в базу данных 1 строка одно значение и так что бы все записи в базу данных
snikers987
Отправлено: 21 Февраля, 2012 - 22:32:17
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
mysql_query('INSERT INTO `post` (`title`) VALUES ("'.$sData.'")');
}
то есть если в файле file.txt будет 10 строк то и в базу добавятся 10 новых записей верно?
а как реализовать если запись есть в базе данных с таким значением то пропускаем это строку и идём дальше?
snikers987
Отправлено: 21 Февраля, 2012 - 22:41:54
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
mysql_query('INSERT INTO `post` (`title`) VALUES ("'.$sData.'")');
}
то есть если в файле file.txt будет 10 строк то и в базу добавятся 10 новых записей верно?
а как реализовать если запись есть в базе данных с таким значением то пропускаем это строку и идём дальше?
Почему не написать сразу что нужно?
Поставьте UNIQUE на нужное поле, а запрос сделайте
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
ATOM
Отправлено: 22 Февраля, 2012 - 06:30:54
Гость
Покинул форум
Сообщений всего: 101
Дата рег-ции: Май 2011
Помог: 0 раз(а)
извините с php работаю недавно, если есть возможность полный код с проверкой, который будет брать значения с file.txt и проверять если есть совпадения то эту строку пропускаем
snikers987
Отправлено: 22 Февраля, 2012 - 08:27:44
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
Никакого "полного кода" нет. Задача, по проверке совпадений, возложена на базу данных.
Как сделать я написал.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
LIME
Отправлено: 22 Февраля, 2012 - 09:25:46
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
snikers987 а зачем нужен IGNORE если делается одиночный инсерт?
snikers987
Отправлено: 22 Февраля, 2012 - 12:11:27
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
LIME пишет:
snikers987 а зачем нужен IGNORE если делается одиночный инсерт?
Инсерт не одиночный, он в цикле, тс же написал, что если титл уже есть в бд то не добавлять его.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
LIME
Отправлено: 22 Февраля, 2012 - 12:22:21
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
snikers987 пишет:
Инсерт не одиночный, он в цикле
одиночный в цикле
у инсерта есть вариант вставки одним запросом многих строк
там есть смысл применять игнор чтоб оставшиеся вставки сработали
snikers987 пишет:
тс же написал, что если титл уже есть в бд то не добавлять его.
зачем уникальный ключ я понял
а игнор тут ни к чему
snikers987
Отправлено: 22 Февраля, 2012 - 12:29:13
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
LIME пишет:
snikers987 пишет:
Инсерт не одиночный, он в цикле
одиночный в цикле
у инсерта есть вариант вставки одним запросом многих строк
там есть смысл применять игнор чтоб оставшиеся вставки сработали
snikers987 пишет:
тс же написал, что если титл уже есть в бд то не добавлять его.
зачем уникальный ключ я понял
а игнор тут ни к чему
Тоесть если есть уникальный ключ, и выполнить инсерт без игноре, не будет ошибки , что значение не уникально?
Не знал, попробую. Ну в принципе сути это не меняет. Можно и сформировать строку запроса в цикле и занести все записи одним запросом, кто ж не дает.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
LIME
Отправлено: 22 Февраля, 2012 - 12:33:44
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
нет ошибка будет
но она никак не проявится для скрипта
мы же не выводим mysql_error()
snikers987 пишет:
Можно и сформировать строку запроса в цикле и занести все записи одним запросом, кто ж не дает.
это будет предпочтительнее для бд но тогда нужен игнор
snikers987
Отправлено: 22 Февраля, 2012 - 12:37:12
Участник
Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011 Откуда: Крым
Помог: 25 раз(а)
LIME пишет:
это будет предпочтительнее для бд
Я специально не писал для одного запроса. Оставил поле для размышлений.
По сути там все просто.
----- Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
ATOM
Отправлено: 22 Февраля, 2012 - 12:54:32
Гость
Покинул форум
Сообщений всего: 101
Дата рег-ции: Май 2011
Помог: 0 раз(а)
товарищи дико извиняюсь, объясните для чайника по шагово что и как сделать.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.