|
|
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, пыталась значение массива добавить в БД MySQL. Но как бы я не старалась всегда получается одно и тоже. Разделила массив(insert into), сохраняла в разные файлы, в один файл(load local ..into), использовала кодировку UTF-8 но все равно id массива не 1-3. а 1-12)) Подскажите варианты решения данной проблемы ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2014, 16:11:44 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Вы хоть код покажите... а то ничего непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2014, 18:18:21 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Не будет лишним показать исходные данные и желаемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2014, 18:48:27 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Простите) Вот мой код <?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]? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 06:23:36 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
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так а чего ж у автора кода не спросите? или это, так сказать, переходящий код? ну как переходящий кубок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 06:49:54 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Елена98 Вот мой код Похоже, проблема с алгоритмом. В загружаемом файле следует формировать всю строку данных, а не отдельные поля. С другой стороны, не вижу препятствий обойтись без создания промежуточных файлов. Конечно, если они не нужны для каких-то других целей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 08:07:48 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Елена98Допустим имеется 3 csv файла, на 23 строке и 2ом столбце(1 ячейка) хранится информация которую надо извлечь и добавить в БД. Мне надо, чтобы я из него сделала один большой массив и обратилась к ячейке как $files[1][22]?MySQL не решает эту задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 08:12:17 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
В смысле, MySQL не работает с массивами. Массив создаете в используемом языке программирования (в данном случае в PHP), извлекаете из него нужный элемент, и только потом обращаетесь с СУБД с запросом INSERT или UPDATE для записи данных, передавая эти данные в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 08:16:27 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
tanglir, каждый день постигаю что то новенькое=)) а что делает тег фикс? Просто не хотела излишней информацией обременять ) В общем, есть папка там 6 файлов, 3 csv 3 txt. Имя файлов хранит в себе дату и время , ну то есть {20131115}{025758}.txt В csv файлах доп информация Энергия, Импульс. еще на 1025 строке информация которую надо извлечь в БД Я хотела бы чтобы все это поместить в один БД (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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:17:36 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
vkle, Ну то есть вся информация с csv файла извлекается в PHP массив там хранится, а нужную ячейку я извлекаю с помощью обращения к ней, $files[1][1025]? что то вроде insert into table(`koefficient`) values(`$files[1][1025] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:21:00 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Уфф всем спасибо, не знаю как но заработало. Вот ж я косячница ))))) Изменила пару строк, вроде все ок. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Теперь осталось добавить информацию с n-ой строки и n-ного столбца csv файла... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 09:55:08 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Елена98Теперь осталось добавить информацию с n-ой строки и n-ного столбца csv файла...ну так а в чём затружнения? растащите ксв на нужные массивы так же, как и текстовые файлы, и добавьте сюда Елена98 Код: php 1. 2. 3. 4. полей и значений. Или это доп. инфорация должна попасть в другие таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 12:17:38 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
tanglir, в эту) Кстати если не удалять БД она увеличивается на столько же строк=(( т.е. id вначале 3, потом 6,9 т.д =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2014, 14:22:39 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Елена98, увеличивается не БД, а счётчик автоинкремента. И на то есть очень весомые причины. Елена98в этуНу так я тогда не пойму, в чём дело. Текстовики вы же смогли разбить "как надо", а ксв - тот же текстовик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 05:03:40 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
tanglir, что бы я без вас делала )) теперь вроде с частью csv и txt все. по поводу счетчика, можно ли добавить if(!empty table_name){mysql_close();} else {for($i=...??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 06:11:29 |
|
||
|
Массивы и БД
|
|||
|---|---|---|---|
|
#18+
Елена98, автоинкремент НЕ предназначен для "пользовательской" (непрерывной, с единицы,...) нумерации. Его задача в 99,9% случаев - быть первичным ключом. И всё . Он не обязан начинаться с 1, он запросто может иметь разрывы. Если хотите иметь свой нумератор, создавайте под него отдельное "обычное" поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 06:41:38 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1835014]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 375ms |

| 0 / 0 |
