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 :: Запись данных из файла в БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
n1k86
Отправлено: 25 Октября, 2011 - 17:06:27
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ребят. Делаю фильтр мата и запоролся на одном моменте. У меня очень большой список матов и хочу всё добавить в таблицу. Все они в файле и разделены запятой. Я считываю их, и заношу в массив разделяя запятой всё.

PHP:
скопировать код в буфер обмена
  1.  
  2. $spisok = file_get_contents('mati.txt'); //Открываю файл и считываю всё.
  3. $mati = explode(",",$spisok); //Принимаю запятую, как разделитель и загоняю в массив.
  4.  


В общем, всё хорошо, но как мне дальше поочереди заносить каждое слово в БД не могу сообразить. Подскажите, пожалуйста.
 
 Top
Stasnislav
Отправлено: 25 Октября, 2011 - 17:12:32
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Апр. 2011  


Помог: 4 раз(а)




Циклом, например foreach.


-----
Программисты на работе общаются двумя фразами: «непонятно» и «вроде работает».
 
 Top
n1k86
Отправлено: 25 Октября, 2011 - 17:13:36
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Это понятно. Как мне сказать ему, чтобы он брал каждое значение из цикла подряд и т.д.
(Добавление)
точнее из массива.
 
 Top
Stasnislav
Отправлено: 25 Октября, 2011 - 17:16:57
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Апр. 2011  


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($mati as $mat) {
  3.    //заносишь в базу
  4. }
  5.  


-----
Программисты на работе общаются двумя фразами: «непонятно» и «вроде работает».
 
 Top
n1k86
Отправлено: 25 Октября, 2011 - 17:17:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ага, спс) Сейчас попробуемс)))) Я кстати пробовал так делать, но не добавляло..может ошибся где-то я...
 
 Top
EuGen Администратор
Отправлено: 25 Октября, 2011 - 17:18:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. //connect to DB first..
  2. $text=file_get_contents('mati.txt');
  3. $rgWords=explode(',',$text);
  4. $sql='INSERT INTO `table` (`word`) VALUES '.join(',', array_map(function($w)
  5. {
  6.    return '("'.mysql_real_escape_string($w).'")';
  7. }, $rgWords));

PHP>=5.3


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
n1k86
Отправлено: 25 Октября, 2011 - 17:29:11
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Евген, твой код не работает.
Станислав, ну делаю получилось вот так:

PHP:
скопировать код в буфер обмена
  1.  
  2. $spisok = file_get_contents('mati.txt'); //Открываю файл и считываю всё.
  3. $mati = explode(",",$spisok); //Принимаю запятую, как разделитель и загоняю в массив.
  4. foreach ($mati as $mat) {
  5. if (mysql_query("INSERT INTO `antimat` (`mat`) VALUES ('сюда что нужно написать?')"))
  6. {
  7. echo "Успешно добавил!";
  8. }
  9.  


Так что туда нужно написать то я не могу понять. До этого момента то я доходил)))
(Добавление)
блин...забыл тег закрыть....5 сек...
 
 Top
Stasnislav
Отправлено: 25 Октября, 2011 - 17:31:44
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Апр. 2011  


Помог: 4 раз(а)




n1k86 пишет:
Так что туда нужно написать то я не могу понять.

$mat


-----
Программисты на работе общаются двумя фразами: «непонятно» и «вроде работает».
 
 Top
n1k86
Отправлено: 25 Октября, 2011 - 17:32:57
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




всё, сработало всё. Если что - вот рабочий код.

PHP:
скопировать код в буфер обмена
  1.  
  2. $spisok = file_get_contents('mati.txt'); //Открываю файл и считываю всё.
  3. $mati = explode(",",$spisok); //Принимаю запятую, как разделитель и загоняю в массив.
  4. foreach ($mati as $mat)
  5. {
  6. mysql_query("INSERT INTO `antimat` (`mat`) VALUES ('$mat')")
  7. }
  8.  
  9.  

(Добавление)
так, ребят. он $mat[0] не записал. Почему собственно? Сказано было все записывать ему. Почему он его пропускает?
 
 Top
EuGen Администратор
Отправлено: 25 Октября, 2011 - 17:34:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Значит, php версии ниже. Пример
PHP:
скопировать код в буфер обмена
  1. $text='w0,w1,w2,w3,w4';
  2. $rgWords=explode(',',$text);
  3. $sql='INSERT INTO `table` (`word`) VALUES '.join(',', array_map(function($w)
  4. {
  5.    return '("'.addslashes($w).'")';
  6. }, $rgWords));
  7. var_dump($sql);

- чтение не из файла + без соединения к БД, так что mysql_* опущено, результат:
PHP:
скопировать код в буфер обмена
  1. string(70) "INSERT INTO `table` (`word`) VALUES ("w0"),("w1"),("w2"),("w3"),("w4")"

- вполне рабочий запрос.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
n1k86
Отправлено: 25 Октября, 2011 - 17:36:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




так, ребят. он $mat[0] не записал. Почему собственно? Сказано было все записывать ему. Почему он его пропускает?
(Добавление)
а нет, извиняюсь. Все было добавлено. Просто косячно отобразил phpmyadmin строки. Сорри. Спасибо ребят!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB