[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема со вставкой в БД
anmy
В общем такая задча. Есть файл содержащий текст (вопросы и ответы). Мне нужно что-бы при загрузке файла, он обрабатывался и автоматически в БД заносились нужные мне строки, в нужные мне поля. Пример: Как вас зовут?# Андрей@ Иван!, вопрос должен встать в поле вопроса, Андрей в поле 1ого ответа итд. (# ! @) эти символы нужны для того чтобы распознать где вопрос а где варинты ответов.
$arr = file('Z:\home\suite\www\file/'.$filname);
foreach ($arr as $item) {
if (preg_match("/#/", $item))
$result = mysql_query ("INSERT INTO i$namet (v1) VALUES ('$item') ");
if (preg_match("/!/", $item))
$upd = mysql_query ("UPDATE i$namet SET v2 = '$item' where id = 1 ");
if (preg_match("/@/", $item))
$upd = mysql_query ("UPDATE i$namet SET v3 = '$item' where id = 1 "); }

этот код, добавляет все как надо, в том случае если в файле символы #!@ встречаются 1 раз. Если же один из символов встречается 2 или 3 раза, то данные добавляются фиг знает как, в разброс. Тогда я добавил -
foreach ($arr as $item) {
if (preg_match("/#/", $item))
$result = mysql_query ("INSERT INTO i$namet (v1) VALUES ('$item') ");
if (preg_match("/!/", $item))
$upd = mysql_query ("UPDATE i$namet SET v2 = '$item' where id = 2 ");
if (preg_match("/@/", $item))
$upd = mysql_query ("UPDATE i$namet SET v3 = '$item' where id = 2 "); }

для того чтобы при следующих повторах этих символов, создавалось новое поле и данные заносились уже туда. То есть -
Вопрос# Ответ1! Ответ1@
Вопрос2# Ответ2! Ответ2@
Должно создаться 2 поля, в 1 ом Вопрос# Ответ1! Ответ1@ , во 2 ом Вопрос2# Ответ2! Ответ2@. А получается что создаются 2 поля где все смешанно непонятно как. Если вы поняли мою задачу, и мой уг код прошу вас помогите, что нужно сделать для того чтобы все работало как надо. P.s код ужасен итд, прошу строго не судить.
kovaldm
Если формат записи такой
Цитата
Как вас зовут?# Андрей@ Иван!

то регулярки не нужны. Можно обойтись массивами.

_____________
sdfcfgvbgmlmknhvdfgctghvbj
dimonise
можно просто разбить explode() по знаку вопроса, потом опять explode() по собаке
anmy
Цитата (kovaldm @ 24.01.2013 - 15:14)
Если формат записи такой
Цитата
Как вас зовут?# Андрей@ Иван!

то регулярки не нужны. Можно обойтись массивами.

ну может ты покажешь примерно как это сделать? )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.