Как ввести контент в БД

Статус
В этой теме нельзя размещать новые ответы.

bobkli

Местный
Регистрация
2 Ноя 2007
Сообщения
686
Реакции
120
Ребята есть проблема, не как немого решить его
Есть 2 тхт файла в одном такой текст
Нуллед.вс
Нуллед.сс
Нуллед.ин
А во втором файле
Нуллед.вс – это форум и т.д. и т.п.
Нуллед.сс – это зеркало форума нулледа
Нуллед.Ин – это второе зеркало нулледа

То есть первая строка в первом файле относиться к первой строке в втором файле
Как это все можно засунуть в БД не подскажете может уже готовые срипты есть или хотябы с похожими функциями
 
какова структура бд ? тебе нужно в одну таблицу это занести или в две ?
и зачем тебе первый файл, если во втором есть те же самые данные ?
 
Вопрос решаем, хотя, я бы объединил два текстовых в один csv файл, для более точного соответствия, а затем бы передал бы в скрипт.
Форма для отправки:
HTML:
<form enctype='multipart/form-data' action='путь к скрипту' method='post'>
<input size='61' class='input' type='file' name='csv' value=''>
разделитель<input type='text' name='separator' value=''>
<input class='button' type='submit' value=''>
</form>

Скрипт-обработчик:
PHP:
<?php
 set_time_limit(0);
  //Error_Reporting(E_ALL & ~E_NOTICE); 
  // Осуществляем соединение с базой данных
$dblocation = "localhost";
$dbname = "№№№№№";
$dbuser = "№№№№№";
$dbpasswd = "№№№№";
// Устанавливаем соединение с базой данных
  $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  if (!$dbcnx) exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
  if (! @mysql_select_db($dbname,$dbcnx)) exit ( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
  
  if(empty($_FILES['csv']['tmp_name']))
	 exit("Ошибка при отправке csv-файла");
  if(!($fp = fopen($_FILES['csv']['tmp_name'],"rb"))) 
	  exit("Ошибка при открытии отправленного файла");
    // Читаем содержимое файла
    $buffer = fread($fp,filesize($_FILES['csv']['tmp_name']));
    // Закрываем файл
    fclose($fp);
    // Удаляем файл
    unlink($_FILES['csv']['tmp_name']);
	// Присваиваем по умолчанию 
	$separator = ";";
	// Если передан параметр separator изменяем значение переменной $separator
	$separator = $_POST['separator'];
    // Если имеются пустые позиции забиваем их прочерком -
    $buffer = str_replace($separator.$separator, $separator."-".$separator,$buffer);
    $buffer = str_replace("\n".$separator, "\n-".$separator,$buffer);
    $buffer = str_replace($separator."\n", $separator."-\n",$buffer);
    // Разбиваем файл по строкам, каждую из которых заносим
	// в отдельный элемент массива $strtmp
    $tok = strtok($buffer,"\n");
    while ($tok)
    {
      $tok = strtok("\n");
   $strtmp[] = $tok;
    }
    // Начало формирования SQL-запроса на вставку данных из
	// csv-файла

 $insert_query = "insert into название таблицы values ";
    // Разбиваем строку по отдельным словам, используя
    // разделитель $separator
    foreach($strtmp as $value)
    {
      // Если строка пуста - выходим из цикла. Пустые строки могут появится,
	  // если в конце csv-файла находятся пустые строки.
      if(empty($value)) break;
	
     
//первое поле
 $pole1 = strtok($value,$separator);
  // второе поле
 $pole2 = strtok($separator);
// Формируем запрос  
	  // Преобразуем прямые кавычки в обратные
      $pole1 = str_replace("'","`", $pole1);
     $pole2 = str_replace("'","`",$pole2);
	 
	 // Формируем и выполняем SQL-запрос на добавление позиции
	
      $insert_query .= "(NULL,
	                    '$pole1',
						'$pole2'),";
	 }
// Из запроса $insert_query удаляем последнюю запятую
	$insert_query = substr($insert_query,0,strlen($insert_query)-1);
// Выполняем SQL-запросы
    if(mysql_query($insert_query))
	{
      echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=адрес страницы успешного результата'>
            </HEAD></HTML>";
    }
	else
	{
//при ошибке - выводится запросы для контроля
	  echo $insert_query;
	  echo "<br>";
	}
?>

Как мне кажется, с текстовыми файлами могут быть сбои, когда число строк в одном файле будет не соответствовать числу строк в другом.
Делается где-то так
PHP:
// читаем файлы и разбиваем их
$filename1=file_get_contents($_SERVER['DOCUMENT_ROOT']."/fail1.txt"); 
 $filename1=explode("\n", $filename1);
$filename2=file_get_contents($_SERVER['DOCUMENT_ROOT']."/fail2.txt"); 
 $filename2=explode("\n", $filename2);
В цикле формируешь запросы к базе
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху