Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dodawanie danych do bazy z txt
marioxp
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.05.2009

Ostrzeżenie: (0%)
-----


Witam

nie wiem jak rozwiazac ponizszy problem:

mamy plik przyklad.txt jego zawartosc to :
211222222
34444444
45435344423
4234234242
24442424234242

potrzebuje to zasac z poziomu strony do bazy

chodzi o wskazanie pliku przyklad.txt
ale sadze ze taki maly formularz wystarczy :

<input type="hidden" name="MAX_FILE_SIZE" value="9999999999" />
Plik do wysłania: <input name="userfile" type="file" />
<input type="submit" value="Wyślij" />

teraz mam problem z wrzuceniem ego pliku do bazy tylko potrzeba jeszcze dodac jeszcze jedno pole
w tabeli mamy takie pola
id,nr_kat,data

nr_katalogowany ma byc pobrany z pliku .txt a data to aktualna data tj dzien w ktorym dodawane sa dane do bazy

czy jest mi ktos w stanie pomoc

z gory dzieki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A o fgets" title="Zobacz w manualu PHP" target="_manual słyszałeś?

PS. Proszę o tag tematu.
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


  1. LOAD DATA INFILE
- poczytaj o takim zapytaniu, doda do bazy od razu cały plik. Pole typu ID zrób auto_increment a w pole data po prostu wstaw UPDATE'm aktualną datę lub ustaw we właściwościach pola tak, żeby domyślnie wpadała bieżąca data, gdy pojawi się nowy rekord.
Go to the top of the page
+Quote Post
marioxp
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.05.2009

Ostrzeżenie: (0%)
-----


wlasnie probuje zrobic przez fgets

tylko spotkalem sie z takim problemem ze jesli plik nie znajdzie sie na serwerze to nie chce go zaczytac

gdzie moze byc blad

<?php

require ('xxx.php');

$plik=$_POST['plik'];

$uchwyt = @fopen ($plik, "r");

if ($uchwyt) {

while (!feof($uchwyt)) {

$buffer = fgets($uchwyt, 4096);

$z_dodaj = "INSERT INTO bo_baza_karty SET id='' , nr_karty='$buffer', data='$data_akt'";

$r_dodaj = mysql_query($z_dodaj) or die ("gdzies jest bug ". mysql_error());

}

fclose ($uchwyt);

}

?>
Go to the top of the page
+Quote Post
MWL
post
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

Ostrzeżenie: (0%)
-----


LOAD DATA INFILE to najlepsza i najszybsza metoda. Będize lepiej szybciej i najbardziej optymalnie.
Go to the top of the page
+Quote Post
pgrzelka
post
Post #6





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $tablica = file('plik.txt');
  3.  
  4. foreach ($tablica as $v) {
  5.  $v = trim ($v);
  6.  mysql_query ("insert into tabela (`nr_kat`, `data`) VALUES ('$v', '$data');
  7. }
  8. ?>


po co bawić się fgets skoro każdy nr kategorii w pliku jest w nowej linii, funkcja file wczytuje nam od razu cały plik do tablicy,

Ten post edytował pgrzelka 3.06.2009, 10:51:50
Go to the top of the page
+Quote Post
slawny
post
Post #7





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(pgrzelka @ 3.06.2009, 11:50:25 ) *
po co bawić się fgets skoro każdy nr kategorii w pliku jest w nowej linii, funkcja file wczytuje nam od razu cały plik do tablicy,


to ja ci odpowiem, bo sam kiedyś tak myślałem ale mnie forumowicze wyprowadzili z błędu:
wyobraź sobie plik ważący ~50mb i tą samą operacje, którą wykonuje 50 użytkowników....
Go to the top of the page
+Quote Post
marioxp
post
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.05.2009

Ostrzeżenie: (0%)
-----


Cytat(pgrzelka @ 3.06.2009, 11:50:25 ) *
  1. <?php
  2. $tablica = file('plik.txt');
  3.  
  4. foreach ($tablica as $v) {
  5.  $v = trim ($v);
  6.  mysql_query ("insert into tabela (`nr_kat`, `data`) VALUES ('$v', '$data');
  7. }
  8. ?>


po co bawić się fgets skoro każdy nr kategorii w pliku jest w nowej linii, funkcja file wczytuje nam od razu cały plik do tablicy,


powiem ze tego nigdy nie robilem przez to szukalem najlepszej metody
wydaje mi sie ze to bedzie okey ale mam nastepny problem z przekazaniem tego pliku do z formularza
do tablicy
$tablica = file($_POST['plik']);
i znow problem ehhh
Go to the top of the page
+Quote Post
MWL
post
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

Ostrzeżenie: (0%)
-----


No ej panowie, ale wygląda na to ze to nie operacja wykonywana przez kilku userów. Mimo to sądzę że najlepsiajszą metodą jest uzywanie PHPMyAdmin, linki MySql czy czegoś w ten deseń. Jak to się ma wykonywać non stop no to raczej trzeba zrobic oś innego bo to idiotyzm, tak (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
marioxp
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.05.2009

Ostrzeżenie: (0%)
-----


Cytat(slawny @ 3.06.2009, 12:03:04 ) *
to ja ci odpowiem, bo sam kiedyś tak myślałem ale mnie forumowicze wyprowadzili z błędu:
wyobraź sobie plik ważący ~50mb i tą samą operacje, którą wykonuje 50 użytkowników....

plik moze miec max 8tys rekordow i max 1 osoba to bedzie robic

Cytat(MWL @ 3.06.2009, 12:06:43 ) *
No ej panowie, ale wygląda na to ze to nie operacja wykonywana przez kilku userów. Mimo to sądzę że najlepsiajszą metodą jest uzywanie PHPMyAdmin, linki MySql czy czegoś w ten deseń. Jak to się ma wykonywać non stop no to raczej trzeba zrobic oś innego bo to idiotyzm, tak (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)



przez pma to bez problemu ale to ma byc dla osoby ktora ma nie miec dostepu
Go to the top of the page
+Quote Post
pgrzelka
post
Post #11





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat
$tablica = file($_POST['plik']);

nie tak,
najpierw musisz wgrać plik na serwer do jakiegoś folderu
a dopiero potem zrobić file('wgranyplik.txt');
poszukaj o move_uploaded_file

Cytat
plik moze miec max 8tys rekordow i max 1 osoba to bedzie robic

spokojnie możesz zastosować moje rozwiązanie, mojemu skromnemu vps'owi wgranie 17k bardziej rozbudowanych rekordów zajmowało ok 20 sekund
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ostatni raz proszę o tag tematu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:24