Автор Тема: Помощ за пълнене на база данни  (Прочетена 2786 пъти)

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Моля за малко помощ.

Имам някакъв РНР скрипт който вади информация от API на една онлайн игра и я блъска в база данни. Като вход му се дава или ID на играч или nikname. Понеже трябва да се извадят данни за над 100 човека няма начин да го направя на ръка. Имам два файла с имента и номерцата на играчите. Как може да се автоматизира въвеждането на базата на тези файлове. Като вмъквам нов ред в таблицата в phpmyadmin ми излиза
Код
GeSHi (SQL):
  1. INSERT INTO `army`.`ereparm_Soldados` (
  2. `Id` ,
  3. `CompaniaId` ,
  4. `IdProfile` ,
  5. `Nombre` ,
  6. `Pais` ,
  7. `Region` ,
  8. `Rango` ,
  9. `Wellness` ,
  10. `Fuerza` ,
  11. `Damage` ,
  12. `Danio` ,
  13. `Land` ,
  14. `Manufacture` ,
  15. `Construction` ,
  16. `Reservista` ,
  17. `Licencia` ,
  18. `Prioridad` ,
  19. `Reputacion` ,
  20. `Fecha`
  21. )
  22. VALUES (
  23. '2', '13', '14242', 'Yasen6275', 'Bulgaria', 'Sofia', 'Colonel', '51.24', '7.44', '10191', '114.576', '2.00', '5.24', '0.00', '0', '1', '1', '0', '2009-07-28'
  24. );
  25.  
или
Код
GeSHi (PHP):
  1. $sql = "INSERT INTO `army`.`ereparm_Soldados`
  2. (`Id`, `CompaniaId`, `IdProfile`, `Nombre`, `Pais`, `Region`, `Rango`, `Wellness`, `Fuerza`, `Damage`, `Danio`, `Land`, `Manufacture`, `Construction`, `Reservista`, `Licencia`, `Prioridad`, `Reputacion`, `Fecha`)
  3. VALUES
  4. (\'2\', \'13\', \'14242\', \'Yasen6275\', \'Bulgaria\', \'Sofia\', \'Colonel\', \'51.24\', \'7.44\', \'10191\', \'114.576\', \'2.00\', \'5.24\', \'0.00\', \'0\', \'1\', \'1\', \'0\', \'2009-07-28\');";
Ако приемем че имам някакви много рудиментарни познания по РНР как би трябвало да изглежда цикъла който да увеличава с еденица първата колона, да взима от единия файл третата, а от другия четвертата колона, а останалите данни да ги слага еднакви за всички.
« Последна редакция: Jul 29, 2009, 12:35 от VladSun »
Активен

tyuio

  • Гост
Re: Помощ за пълнене на база данни
« Отговор #1 -: Jul 28, 2009, 23:29 »
то тая работа трябва да ти я прави mysql-a а не рнр-то. За мен е малко неясно обяснението ти какво точно иЗкаш. това за първата колона ще рече да ти расте поредния номер така 1,2,3,4... така ли ако е така не ти трябва цъкъл? Това се прави когато създаваш самата база данни, ако съм разбрал правилно въпро са ти де. Така че трябва  и малко познания по sql мисля.
http://dev.mysql.com/doc/refman/5.0/en/tutorial.html
http://www.astutecomputing.com/tutorials/mysql/start.php#2
http://mytech.bg/uroci/12/MySQL
http://web-tourist.net/login/login/statii.php?kategoria=1

не е проблем и отговора да не е толкова абстрактен ама не знам какъв ти е замисъла само от една заявак! Просто всеки ползвател на рнр към база данни ще ти каже че си спестяваш доста работа с добре проектирана база и заявки а и става доста автоматизирано.
« Последна редакция: Jul 28, 2009, 23:31 от tyuio »
Активен

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #2 -: Jul 29, 2009, 08:39 »
Скрипта не е мой просто го ползвам. Искам помощ да реша проблема с многото блъскане по клавиатурата. Ако ме интересуваше как се решва проблема принципно сам щях да си намеря линкове. Просто нямам време да уча и това. Да не говорим че ми е безкрайно далече от специалноста.
« Последна редакция: Jul 29, 2009, 08:40 от Yasen6275 »
Активен

tyuio

  • Гост
Re: Помощ за пълнене на база данни
« Отговор #3 -: Jul 29, 2009, 11:59 »
добреде ама поне обясни по подробно какво искаш и как да влиза в базата?
Активен

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #4 -: Jul 29, 2009, 23:16 »
По-подробно от първия пост не знам как да го обясня. Какво не е ясно?

Имам един файл в който има следния код:
Код
GeSHi (PHP):
  1. $coneccion = mysql_connect($db_host, $db_user, $db_pass);
и се включва почи във секи друг файл който съм разглеждал. Според phpmyadmin всиките таблици са MyISAM. С какво друго мога да те улесня?

Между другото таблицата най-вероятно е направена читаво. Играх си да слагам и да махам данни чрез скрипта и в момента стойността на първата колона е  >10.
« Последна редакция: Jul 29, 2009, 23:20 от Yasen6275 »
Активен

tyuio

  • Гост
Re: Помощ за пълнене на база данни
« Отговор #5 -: Jul 29, 2009, 23:28 »
тогава какъв е проблема ? Просто въпроса е дали е обтимизирана иначе не виждам да има проблеми!
примерно колона `Id` за да добявя автоматично една единица при нов запис трябва да е с опцията auto_increment. Ако повечето от останалите  данни  трябва да са идентични просто указваш на базата да добавя еднакви данни при всеки запис а датата и часа да ги добавя автоматично.
« Последна редакция: Jul 29, 2009, 23:36 от tyuio »
Активен

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #6 -: Jul 30, 2009, 07:41 »
уфф явно говоря на патагонски
файл 1( За пригледност ще го нарече imena.txt):
Код:
Иванчо
Dраганчо
Петканчо
....
Да кажем че има ... 256 реда.
Файл 2 (За пригледност ще го нарече nomera.txt):
Код:
7649
764784
707584743
...
И тук са са толкова редове.
Искам скрипт да напълни таблицата `ereparm_Soldados`  от базата `army` с 256 записа като:
1. започне от Id=1
2. за запис с Id=128 да взема от файл nomera.txt 128-я ред и да го сложи в `IdProfile`
3. за запис с Id=128 да взема от файл imena.txt 128-я ред и да го сложи в `Nombre`
4. Останалите колони да се запълнят с примерните данни които съм дал.

По просто няма как да го обясня.
« Последна редакция: Jul 30, 2009, 07:44 от Yasen6275 »
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #7 -: Jul 30, 2009, 09:45 »
Код
GeSHi (Perl):
  1. #!/usr/bin/perl
  2.  
  3. open F_NAMES, "<", "names.txt" or die $!;
  4. open F_IDS, "<", "names.txt" or die $!;
  5. $i = 0;
  6.  
  7. while ($name = <F_NAMES> and $id = <F_IDS>)
  8. {
  9. chomp($name);
  10. chomp($id);
  11. $i++;
  12. print("$i\t13\t$id\t$name\tBulgaria\tSofia\tColonel\t51.24\t7.44\t10191\t114.576\t2.00\t5.24\t0.00\t0\t1\t1\t0\t2009-07-28\n");
  13. }

Това ще ти направи CSV файлов формат от двата файла (tab  за разделител).
След това ползваш http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #8 -: Jul 30, 2009, 09:58 »
Благодаря.

Три бързи въпроса.

Понеже във файловете за имаената и номерата разделител е нов ред се появява малък бъг. На места освен таб има и нов ред. Това проблем ли е за импорта?

Този импорт само таб-а ли приема за разделител или или всяко бяло поле?

Понеже известна част от имената са с палзи в тях може ли да се сложат кавички или нещо друго за да стане цял стринг и да го разбере импорта?

Бе и така стана. Хакнах файла с имента, като замених паузите със "_" и всичко е ок сега. Благодарности на VladSun за рърл скрипта
« Последна редакция: Jul 30, 2009, 11:43 от Yasen6275 »
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #9 -: Jul 30, 2009, 11:28 »
Пробвай

Естествено двата файла трябва да са стриктно форматирани.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #10 -: Jul 30, 2009, 15:14 »
Този импорт само таб-а ли приема за разделител или или всяко бяло поле?

http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#option_mysqlimport_fields
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Yasen6275

  • Напреднали
  • *****
  • Публикации: 553
    • Профил
Re: Помощ за пълнене на база данни
« Отговор #11 -: Jul 30, 2009, 16:46 »
ups кой не спазва златното правило RTF  >:D .Нищо де. Важнато е че има начин да се свърши хамалската работа. Сега остава да си намеря читав хостинг. Че или ми се правят на тежкари и не допускат езици различни  от ингилизки, или пък блокират по някакъв начин връзката с апито на играта.
Активен

tyuio

  • Гост
Re: Помощ за пълнене на база данни
« Отговор #12 -: Jul 30, 2009, 17:42 »
че какви са тия хостинги дето не допускат езици извън англииския ? :)
Активен