Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL][TXT] - Problem z aktualizacją
slawek3422
post 18.11.2008, 11:59:56
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


Witam.
Mam pewien problem. Chciałbym zrobić coś takiego:
Jest sobie plik tekstowy np. cennik.txt. W pliku tym znajdują się dwie kolumny wartości np:

MODEL CENA
00001 2000 zł
00002 1000 zł

Kolumny te są oddzielone tabulatorem.
Chciałbym teraz zrobić taki mechanizm w PHP, który pobierze mi dane z pliku txt i na podstawie modelu zaktualizuje mi cenę w bazie danych. Tabela w bazie danych zawiera kolumny o identycznych nazwach. Nie chce mi się ręcznie aktualizować bazy rekord po rekordzie i chciałem to w PHP zrobić ale nie wiem czy jest to możliwe w jakiś prosty sposób.

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post
skowron-line
post 18.11.2008, 12:06:19
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


->wczytujesz dane z pliku jako tablice ( file() )
-> w pętli dzielisz te dane
->wyszukujesz w bazie po modelu i robisz sobie update
  1. <?php
  2. $file = file( 'plik.txt' );
  3. foreach( $file as $lines ){
  4. $explode =explode( ' ', $lines );
  5. $zapytanie = 'update tabela set cena = "'. $explode[ 1 ] .'" where model = "'. $explode[ 0 ] .'" ';
  6. mysql_query( $zapytanie );
  7. }
  8. ?>

*pisane z palca

Ten post edytował skowron-line 18.11.2008, 12:06:48


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
slawek3422
post 18.11.2008, 13:10:59
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


extra, wielkie dzięki smile.gif super działa

  1. <?php
  2. require_once 'polacz.php';
  3. $file = file('plik.txt');
  4.  
  5. $data = date("Y-m-d");
  6.  
  7. foreach( $file as $lines ){
  8.    $explode = explode( '    ', $lines );
  9.    
  10.    $update = 'update products set products_price = "'. $explode[ 1 ] .'", products_last_modified = "'.$data.'" where products_model = "'. $explode[ 0 ] .'" ';
  11.    mysql_query( $update );
  12.    
  13. }
  14.  
  15.    $wylacz = "update products set products_status = '0' where products_last_modified  < '$data'";
  16.    mysql_query($wylacz);
  17.    
  18.    
  19. ?>


Zrobiłem tak, teraz tylko mam jeszcze jeden zgrzyt. Chciałbym aby skrypt wyświetlił mi to co jest nowego w pliku txt a nie ma tego w tabeli. Czyli prościej mówiąc ... doszedł nowy produkt a nie ma go w bazie więc skrypt wyświetla czego nie ma i ja to dodaję ręcznie. HELP smile.gif

Ten post edytował slawek3422 18.11.2008, 14:47:56
Go to the top of the page
+Quote Post
erix
post 18.11.2008, 15:45:08
Post #4





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




Hmm, mysql_affected_rows" title="Zobacz w manualu PHP" target="_manual + INSERT, gdy nic? ;]

Ale IMHO lepiej by było użyć konstrukcji INSERT INTO ... ON DUPLICATE KEY.

Ten post edytował erix 18.11.2008, 15:46:12


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 00:58