Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL][TXT] - Problem z aktualizacją
Forum PHP.pl > Forum > Przedszkole
slawek3422
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.
skowron-line
->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
slawek3422
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
erix
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.