Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL][TXT] - Problem z aktualizacją
slawek3422
post
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
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
Go to the top of the page
+Quote Post
slawek3422
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował slawek3422 18.11.2008, 14:47:56
Go to the top of the page
+Quote Post
erix
post
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
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: 20.09.2025 - 15:42