Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сложности с PHP + mySQL / 3 сообщений из 3, страница 1 из 1
09.04.2014, 14:36
    #38609959
Елена98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложности с PHP + mySQL
Здравствуйте, дорогие профессионалы! Недавно начала программировать и возникли технические проблемы, нуждаюсь в советах профессионалов))

Имеется папка с файлами, и мне бы хотелось, что бы скрипт считывал, папки и файлы и автоматом заносил в БД. Создала несколько массивов из папок, файлов и содержащей в ней информацией и внесла их в таблицы БД, но возникли некоторые сложности, а именно в том, что не знаю как отфильтровать по определенным папкам файлы.


Допустим в папке А есть папки:

Они являются названиями секторов. В каждой из них хранится файлы например в папках:
1) DKG1:

2) ESB2:

3) PORS3:


CSV и txt файлы связаны по названию, которая содержит дату и время спектра(т.е. 2013-11-15 03:57:32).
В txt файлах содержится информация о долготе и широте, в csv файлах каналы, энергия и импульсы из 1023 строк и 3х столбцов по которым строится график.
на 1024 строке и втором столбце Живое время, на 1025 строке 2 столбце Реальное время.

Надо чтобы скрипт считывал количество папок, файлов, извлекал информацию и вводил их в БД.
Первая таблица "Сектора" в нем хранится: 1)название Секторов(имена папок в папке А),2) Дата начала и 3)Дата конца (т.е. даты из названия файлов, первый и последний в папке сектора).
Вторая таблица "Спектры" в нем хранится информация: 1)Дата,2)Время(из названия файлов), 3)Долгота,4)Широта(данные в txt файлах),5)Реальное время,6)Живое время(Данные на 1024,1025 строках и во втором столбце),7)Сектор(К которому относится спектр). Данные из csv файлов до 1023 строки(т.е. канал энергия импульс) я не стала заносить в БД, думаю сделать линк по которому можно просмотреть эти данные, за одно и сам график. (с этим у меня вообще идей нет =(( )

На данный момент я имею массивы из 1)названия секторов, 2)Даты 3)Времени 4)Долготы 5)Широты 6)Реального времени 7)Живого времени спектров и 1023 строк энергии и импулься. Мне осталось, чтобы дата начала и конца заносились в таблицу "Сектора", чтобы был пользовательский интерфейс с поиском(название,дата,координаты и т.д.) и фильтром по дате(от ххх до ххх), чтобы можно было перейти на подробную информацию о спектре(т.е. канал,энергия, импульс + график). А так же кнопку для обновления информации

Код , закоментировала некоторые части)):
Код: 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.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
    $vahta = "C:/Users/Crice123/Documents/new/vahta";   //задаем имя директории
    if(is_dir($vahta)) {   //провер¤ем наличие директории
         echo $vahta.' - директори¤ существует;<br>'; 
         $masiVahta = scandir($vahta);    //сканируем (получаем массив папок)
         array_shift($masiVahta); // удал¤ем из массива '.'
         array_shift($masiVahta); // удал¤ем из массива '..'
		 
         for($i=0; $i<sizeof($masiVahta); $i++) {echo '-файл: '.$masiVahta[$i].';<br>';}  //выводим все файлы
		 
    } 
    else echo $vahta.' -такой директории нет;<br>';
	//!!!!!!!!!!!!!!!1
	for($i=0;$i<sizeof($masiVahta);$i++){
    $sektor[] = "C:/Users/Crice123/Documents/new/vahta/$masiVahta[$i]";   //задаЄм им¤ директории
			if(is_dir($sektor[$i])) {   //провер¤ем наличие директории
						$masivSektor[] = scandir($sektor[$i]);    //сканируем (получаем массив файлов)
						for($k=0;$k<count($masivSektor);$k++){
						unset($masivSektor[$k][0]);//Удаляем пустые ячейки
						unset($masivSektor[$k][1]);
						}
			} 
    else echo $sektor.' -такой директории нет;<br>';
	}

    $a=count($masivSektor);
    $b=sizeof($masivSektor[0])+2;

for($i=0;$i<count($masivSektor);$i++){//дата и время из файлов заносятся в массивы
			for($j=2;$j<$b;$j=$j+2){
					$dataSpektr[] = substr($masivSektor[$i][$j],0,4).'-'.substr($masivSektor[$i][$j],4,2).'-'.substr($masivSektor[$i][$j],6,2);
					$timeSpektr[] = substr($masivSektor[$i][$j],8,2).':'.substr($masivSektor[$i][$j],10,2).':'.substr($masivSektor[$i][$j],12,2);


for($i=0; $i<count($masivSektor);$i++) {//»звлекаем координаты
		for($j=3;$j<$b;$j=$j+2){
				$f=file_get_contents("C:/Users/Crice123/Documents/new/vahta/$masiVahta[$i]/".$masivSektor[$i][$j]);
				$koorBig[]=explode(";",$f);
		}
		 
}
$c=count($koorBig);

or($i=0;$i<$c;$i++){//удаляем пустую ячейку
		unset($koorBig[$i][2]);
}

for($i=0;$i<$c;$i++){//&#402;елим на долготу и широту
		  $koorString[$i]=implode(";",$koorBig[$i]);
		  list($dolgota1[$i],$wirota1[$i])=explode(";",$koorString[$i]);
		  $dolgota[] = iconv("windows-1251", "UTF-8", "$dolgota1[$i]");
		  $wirota[] = iconv("windows-1251", "UTF-8", "$wirota1[$i]");  

		   }

for($i=0; $i<count($masivSektor);$i++) {//извлекаем данные из csv в один массив
		for($j=2;$j<$b;$j=$j+2){
				$fpon=fopen("C:/Users/Crice123/Documents/new/vahta/$masiVahta[$i]/".$masivSektor[$i][$j],"r");
				while(!feof($fpon)){
						$spekCsv[]=fgetcsv($fpon,1024,";");
				}		
				
		}
}
for($k=0;$k<($c)*1028;$k=$k+1028){//получаем данные время живое и реальное
		$vrJiv[] = $spekCsv[1024+$k][1];
		$vrReal[] = $spekCsv[1025+$k][1];
		unset($spekCsv[1028+$k]);//удаление не нужных ячеек
		unset($spekCsv[1027+$k]);
		unset($spekCsv[1026+$k]);
		unset($spekCsv[1025+$k]);
		unset($spekCsv[1024+$k]);
		for($i=0;$i<=($c)*1028;$i++){
				unset($spekCsv[$i][3]);
				unset($spekCsv[$i][4]);
				unset($spekCsv[$i][5]);
				unset($spekCsv[$i][6]);
				unset($spekCsv[$i][7]);
				unset($spekCsv[$i][8]);
				unset($spekCsv[$i][9]);
				unset($spekCsv[$i][10]);
		}
}


$db=mysql_connect("localhost","root",""); //
mysql_query("create database if not exists rootify",$db);
mysql_select_db("rootify",$db);
//mysql_query("drop table if exists testingv",$db);
$mycou = mysql_query("select count(*) from spektors");
mysql_query("create table if not exists sektors(idsek int not null auto_increment primary key, sektor varchar(20), datana4ala varchar(40), datakonca varchar(40))");
$mycau = mysql_query("select count (*) from sektors");
mysql_query("create table if not exists spektors(idspek int not null auto_increment primary key, dataSpektr varchar(40), timeSpektr varchar(40), dolgota varchar(40), wirota varchar(40),jivoe varchar(40),realnoe varchar(40),sektor varchar(20),idsek int not null,foreign key(idsek) references sektors(idsek) on delete cascade on update restrict)");

if(!empty($mycau)){mysql_close($db);//цикл для добавления данных из массивов в таблицу сектора
	}
	else {for($i=0;$i<$a;$i++){
				$sqli="insert into `sektors`(`sektor`,`datana4ala`,`datakonca`) values ('$masiVahta[$i]','$dataSpektr[$i]','$timeSpektr[$i]')";
				mysql_query($sqli);
	}
}

if(!empty($mycou)){mysql_close($db);//цикл для добавления данных из массивов в таблицу спекторы
	}
	else {for($i=0;$i<$c;$i++){
			$sql="insert into `spektors`(`dataSpektr`,`timeSpektr`,`dolgota`,`wirota`,`jivoe`,`realnoe`,`sektor`,`idsek`) values ('$dataSpektr[$i]','$timeSpektr[$i]','$dolgota[$i]','$wirota[$i]','$vrJiv[$i]','$vrReal[$i]','$masiVahta[$i]','$i')";
			mysql_query($sql);
	}
}

?>



Вот бета бета версия интерфейса )
...
Рейтинг: 0 / 0
09.04.2014, 15:55
    #38610135
Sanjar88
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложности с PHP + mySQL
опять тоже самое?) кто Вас учил БД таким образом создавать? зачем каждый раз дропать и создавать бд и таблицы ?

запросы типа $query= "SELECT"; нужно возвращать mysqli_fetch_array или mysqli_fetch_assoc

$res = mysqli_query($connection, $query);
return mysqli_fetch_assoc($res);



зачем
Код: php
1.
2.
$sqli="insert into `sektors`(`sektor`,`datana4ala`,`datakonca`) values ('$masiVahta[$i]','$dataSpektr[$i]','$timeSpektr[$i]')";
				mysqli_query($sqli);


когда можно сразу
Код: php
1.
mysqli_query("insert into `sektors`(`sektor`,`datana4ala`,`datakonca`) values ('$masiVahta[$i]','$dataSpektr[$i]','$timeSpektr[$i]')");



по поводу как массивы вносить в бд это не ко мне, самому нужно подучится :(
...
Рейтинг: 0 / 0
09.04.2014, 16:20
    #38610186
Елена98
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложности с PHP + mySQL
Sanjar88, ахахха опять я ) неее я больше не дропаю, я их закомментила )) да с этими массивами и бд беда=(

может вы знаете как сделать чтобы записи обновлялись? т.е. у меня в папке 3 файла, если я добавлю 4ый. как можно сделать чтобы он автоматом в бд импортировался )
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Сложности с PHP + mySQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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