powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Массивы и БД
16 сообщений из 16, страница 1 из 1
Массивы и БД
    #38606504
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, пыталась значение массива добавить в БД MySQL. Но как бы я не старалась всегда получается одно и тоже.

Разделила массив(insert into), сохраняла в разные файлы, в один файл(load local ..into), использовала кодировку UTF-8 но все равно id массива не 1-3. а 1-12)) Подскажите варианты решения данной проблемы )
...
Рейтинг: 0 / 0
Массивы и БД
    #38606569
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы хоть код покажите... а то ничего непонятно.
...
Рейтинг: 0 / 0
Массивы и БД
    #38606583
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не будет лишним показать исходные данные и желаемый результат.
...
Рейтинг: 0 / 0
Массивы и БД
    #38606799
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите) Вот мой код

<?php

$dir = "C:/Users/Crice123/Documents/new/Okassov"; //задаём имя директории
if(is_dir($dir)) { //проверяем наличие директории
//echo $dir.' - директория существует;<br>';
$files = scandir($dir); //сканируем (получаем массив файлов)
array_shift($files); // удаляем из массива '.'
array_shift($files); // удаляем из массива '..'
for($i=0; $i<sizeof($files); $i++) echo '-файл: '.$files[$i].';<br>'; //выводим все файлы
}
else echo $dir.' -такой директории нет;<br>';

$dataSpektr=array();
$timeSpektr=array();
$i=0;
while($i<=sizeof($files)){//делим название файла на дату и время
$dataSpektr[] = substr($files[$i],0,4).'-'.substr($files[$i],4,2).'-'.substr($files[$i],6,2);
$timeSpektr[] = substr($files[$i],8,2).':'.substr($files[$i],10,2).':'.substr($files[$i],12,2);
$i=$i+2;
if ($i==sizeof($files))
break;
}
echo'<br>';
print_r($dataSpektr);
echo'<br>';
print_r($timeSpektr);
echo'<br>';
$koorbig=array();
for($i=1; $i<=sizeof($files);$i=$i+2) {//Извлекаем координаты
$f=file_get_contents("C:/Users/Crice123/Documents/new/Okassov/".$files[$i]);
$koorbig[]=explode(";",$f);
for($j=0;$j<$cou=count($koorbig);$j++){
unset($koorbig[$j][2]);
}

}
print_r($koorbig);
echo'<br>';
echo $cou;
echo'<br>';
$ppre=array();
$dolgota=array();
$wirota=array();
for($i=0;$i<$cou;$i++){//Делим на долготу и широту
$ppre[$i]=implode(";",$koorbig[$i]);
list($dolgota[$i],$wirota[$i])=explode(";",$ppre[$i]);
}
echo'<br>';
print_r($ppre);
echo'<br>';
print_r($dolgota);
echo'<br>';
print_r($wirota);
echo'<br>';

$daty=implode("\r\n",$dataSpektr);
$vremy=implode("\r\n",$timeSpektr);
$dolgoty=implode("\r\n",$dolgota);
$wiroty=implode("\r\n",$wirota);



file_put_contents("C:/Users/Crice123/Documents/new/data.txt",iconv("windows-1251", "UTF-8", "$daty"));
file_put_contents("C:/Users/Crice123/Documents/new/vremya.txt",iconv("windows-1251", "UTF-8", "$vremy"));
file_put_contents("C:/Users/Crice123/Documents/new/dolgota.txt",iconv("windows-1251", "UTF-8", "$dolgoty"));
file_put_contents("C:/Users/Crice123/Documents/new/wirota.txt",iconv("windows-1251", "UTF-8", "$wiroty"));

$db=mysql_connect("localhost","root","");
//mysql_query("drop database if exists rootify",$db);
mysql_query("create database if not exists rootify",$db);
mysql_select_db("rootify",$db);
// ne polzuisya kirillicei, plohoi podhod
mysql_query("drop table if exists testingv",$db);
mysql_query("create table if not exists testingv(id int not null auto_increment primary key, dataSpektr varchar(40), timeSpektr varchar(40), dolgota varchar(40), wirota varchar(40))");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/data.txt' into table testingv(`dataSpektr`)");//,`timeSpektr`,`dolgota`,`wirota`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/vremya.txt' into table testingv(`timeSpektr`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/dolgota.txt' into table testingv(`dolgota`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/wirota.txt' into table testingv(`wirota`)");


Вот собственно код. Пробовала через переменные передать, все равно все по диагонали... А хотлось бы, что бы получилась вот такая таблица
.

Есть еще один вопрос про csv файлы
Допустим имеется 3 csv файла, на 23 строке и 2ом столбце(1 ячейка) хранится информация которую надо извлечь и добавить в БД. Мне надо, чтобы я из него сделала один большой массив и обратилась к ячейке как $files[1][22]?
...
Рейтинг: 0 / 0
Массивы и БД
    #38606808
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)делайте отступы - читать совершенно невозможно!
2)для кода надо использовать тег src
3)давате поставим вопрос так:
3.1)что за информация хранится в файлах - по 2-3 строчки из каждого покажите, тег fixed в помощь, а спойлером уже умеете пользоваться :) и объясните, как оно в разных файлах между собой связано. Или изначально у вас не файлы, а массив (а файлы - уже ваши попытки что-то сделать) - тогда покажите исходный массив...
3.2)что с ней надо сделать? загрузить куда-то? тогда показывайте структуру таблиц, в которые она будет загружаться...
3.3)что за результат хочется получить? табличку вы показали, но вот откуда она собирается - непонятно...

PS.
Елена98C:/Users/Crice123/Documents/new/wirota.txtтогда уж wipoma :)
Елена98// ne polzuisya kirillicei, plohoi podhodтак а чего ж у автора кода не спросите? или это, так сказать, переходящий код? ну как переходящий кубок
...
Рейтинг: 0 / 0
Массивы и БД
    #38606831
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена98 Вот мой код Похоже, проблема с алгоритмом. В загружаемом файле следует формировать всю строку данных, а не отдельные поля.
С другой стороны, не вижу препятствий обойтись без создания промежуточных файлов. Конечно, если они не нужны для каких-то других целей.
...
Рейтинг: 0 / 0
Массивы и БД
    #38606833
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена98Допустим имеется 3 csv файла, на 23 строке и 2ом столбце(1 ячейка) хранится информация которую надо извлечь и добавить в БД. Мне надо, чтобы я из него сделала один большой массив и обратилась к ячейке как $files[1][22]?MySQL не решает эту задачу.
...
Рейтинг: 0 / 0
Массивы и БД
    #38606836
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле, MySQL не работает с массивами. Массив создаете в используемом языке программирования (в данном случае в PHP), извлекаете из него нужный элемент, и только потом обращаетесь с СУБД с запросом INSERT или UPDATE для записи данных, передавая эти данные в запросе.
...
Рейтинг: 0 / 0
Массивы и БД
    #38606871
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, каждый день постигаю что то новенькое=)) а что делает тег фикс? Просто не хотела излишней информацией обременять )
В общем, есть папка там 6 файлов, 3 csv 3 txt. Имя файлов хранит в себе дату и время
, ну то есть {20131115}{025758}.txt В csv файлах доп информация
Энергия, Импульс. еще на 1025 строке информация которую надо извлечь в БД
, по которым строится график, а в txt файле долгота и широта

Я хотела бы чтобы все это поместить в один БД (id, дата, время, долгота, широта, коэффициен
[хранится на 1025 строке 2ом столбце .csv файла]
) Потом интерфейс с поиском и фильтром, но думаю с этим не возникнут проблемы.
Вот весь код через скрин:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
<?php
    $dir = "C:/Users/Crice123/Documents/new/Okassov";   //задаём имя директории
    if(is_dir($dir)) {   //проверяем наличие директории
         //echo $dir.' - директория существует;<br>'; 
         $files = scandir($dir);    //сканируем (получаем массив файлов)
         array_shift($files); // удаляем из массива '.'
         array_shift($files); // удаляем из массива '..'
		 
         for($i=0; $i<sizeof($files); $i++) {echo '-файл: '.$files[$i].';<br>';}  //выводим все файлы
		 
    } 
    else echo $dir.' -такой директории нет;<br>';
	$dataSpektr=array();
	$timeSpektr=array();
	$i=0;
	while($i<=sizeof($files)){//делим название файла на дату и время
	$dataSpektr[] = substr($files[$i],0,4).'-'.substr($files[$i],4,2).'-'.substr($files[$i],6,2);
	$timeSpektr[] = substr($files[$i],8,2).':'.substr($files[$i],10,2).':'.substr($files[$i],12,2);
	$i=$i+2;
	           if ($i==sizeof($files))
		break;
	}
	echo'<br>';
	print_r($dataSpektr);
	echo'<br>';
	print_r($timeSpektr);
	echo'<br>';

$koorbig=array();	

for($i=1; $i<=sizeof($files);$i=$i+2) {//Извлекаем координаты
		 $f=file_get_contents("C:/Users/Crice123/Documents/new/Okassov/".$files[$i]);
		 $koorbig[]=explode(";",$f);
		             for($j=0;$j<$cou=count($koorbig);$j++){
				             unset($koorbig[$j][2]);
		             }
		 
		}
		  print_r($koorbig);
		  echo'<br>';
		  echo $cou;
		  echo'<br>';
$ppre=array();
$dolgota=array();
$wirota=array();
for($i=0;$i<$cou;$i++){//Делим на долготу и широту
		  $ppre[$i]=implode(";",$koorbig[$i]);
		  list($dolgota[$i],$wirota[$i])=explode(";",$ppre[$i]);
		   }
		   echo'<br>';
		   print_r($ppre);
		   echo'<br>';
		   print_r($dolgota);
		   echo'<br>';
		   print_r($wirota);
		   echo'<br>';

//file_put_contents("C:/Users/Crice123/Documents/new/new.txt",$stroka);
$daty=implode("\r\n",$dataSpektr);
$vremy=implode("\r\n",$timeSpektr);
$dolgoty=implode("\r\n",$dolgota);
$wiroty=implode("\r\n",$wirota);



file_put_contents("C:/Users/Crice123/Documents/new/data.txt",iconv("windows-1251", "UTF-8", "$daty"));
file_put_contents("C:/Users/Crice123/Documents/new/vremya.txt",iconv("windows-1251", "UTF-8", "$vremy"));
file_put_contents("C:/Users/Crice123/Documents/new/dolgota.txt",iconv("windows-1251", "UTF-8", "$dolgoty"));
file_put_contents("C:/Users/Crice123/Documents/new/wirota.txt",iconv("windows-1251", "UTF-8", "$wiroty"));

$db=mysql_connect("localhost","root","");
//mysql_query("drop database if exists rootify",$db);
mysql_query("create database if not exists rootify",$db);
mysql_select_db("rootify",$db);
mysql_query("drop table if exists testingv",$db);
mysql_query("create table if not exists testingv(id int not null auto_increment primary key, dataSpektr varchar(40), timeSpektr varchar(40), dolgota varchar(40), wirota varchar(40))");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/data.txt' into table testingv(`dataSpektr`)");//,`timeSpektr`,`dolgota`,`wirota`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/vremya.txt' into table testingv(`timeSpektr`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/dolgota.txt' into table testingv(`dolgota`)");
mysql_query("load data infile 'C:/Users/Crice123/Documents/new/wirota.txt' into table testingv(`wirota`)");


?>


...
Рейтинг: 0 / 0
Массивы и БД
    #38606876
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle, Ну то есть вся информация с csv файла извлекается в PHP массив там хранится, а нужную ячейку я извлекаю с помощью обращения к ней, $files[1][1025]? что то вроде insert into table(`koefficient`) values(`$files[1][1025] ?
...
Рейтинг: 0 / 0
Массивы и БД
    #38606902
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уфф всем спасибо, не знаю как но заработало. Вот ж я косячница ))))) Изменила пару строк, вроде все ок.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
[FIXED]
for($i=0;$i<$cou;$i++){//Делим на долготу и широту
$ppre[$i]=implode(";",$koorbig[$i]);
list($dolgota[$i],$wirota[$i])=explode(";",$ppre[$i]);
$dolgota1[] = iconv("windows-1251", "UTF-8", "$dolgota[$i]");//содержит закорючки, изменила формат 
$wirota1[] = iconv("windows-1251", "UTF-8", "$wirota[$i]"); 
 }
[/FIXED]

[FIXED]
$db=mysql_connect("localhost","root","");
//mysql_query("drop database if exists rootify",$db);
mysql_query("create database if not exists rootify",$db);
mysql_select_db("rootify",$db);
mysql_query("drop table if exists testingv",$db);
mysql_query("create table if not exists testingv(id int not null auto_increment primary key, dataSpektr varchar(40), timeSpektr varchar(40), dolgota varchar(40), wirota varchar(40))");

for($i=0;$i<$cou;$i++){
	$sql="insert into `testingv`(`id`,`dataSpektr`,`timeSpektr`,`dolgota`,`wirota`) values (null,'$dataSpektr[$i]','$timeSpektr[$i]','$dolgota1[$i]','$wirota1[$i]')";
	mysql_query($sql);
	}
[/FIXED]




Теперь осталось добавить информацию с n-ой строки и n-ного столбца csv файла...
...
Рейтинг: 0 / 0
Массивы и БД
    #38607087
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена98Теперь осталось добавить информацию с n-ой строки и n-ного столбца csv файла...ну так а в чём затружнения? растащите ксв на нужные массивы так же, как и текстовые файлы, и добавьте сюда
Елена98
Код: php
1.
2.
3.
4.
for($i=0;$i<$cou;$i++){
	$sql="insert into `testingv`(`id`,`dataSpektr`,`timeSpektr`,`dolgota`,`wirota`) values (null,'$dataSpektr[$i]','$timeSpektr[$i]','$dolgota1[$i]','$wirota1[$i]')";
	mysql_query($sql);
	}

полей и значений.
Или это доп. инфорация должна попасть в другие таблицы?
...
Рейтинг: 0 / 0
Массивы и БД
    #38607283
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, в эту) Кстати если не удалять БД она увеличивается на столько же строк=(( т.е. id вначале 3, потом 6,9 т.д =))
...
Рейтинг: 0 / 0
Массивы и БД
    #38607824
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена98, увеличивается не БД, а счётчик автоинкремента. И на то есть очень весомые причины.
Елена98в этуНу так я тогда не пойму, в чём дело. Текстовики вы же смогли разбить "как надо", а ксв - тот же текстовик...
...
Рейтинг: 0 / 0
Массивы и БД
    #38607845
Елена98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, что бы я без вас делала )) теперь вроде с частью csv и txt все. по поводу счетчика, можно ли добавить if(!empty table_name){mysql_close();} else {for($i=...???
...
Рейтинг: 0 / 0
Массивы и БД
    #38607851
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елена98, автоинкремент НЕ предназначен для "пользовательской" (непрерывной, с единицы,...) нумерации. Его задача в 99,9% случаев - быть первичным ключом. И всё . Он не обязан начинаться с 1, он запросто может иметь разрывы. Если хотите иметь свой нумератор, создавайте под него отдельное "обычное" поле.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Массивы и БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]