Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php+mysql
Forum PHP.pl > Forum > Przedszkole
Gość_kober
Witam

jestem w trakcie tworzenia pewnego sklepu internetowego i natrafilem na maly problem smile.gif potrzebuje zrobic skrypt ktory po uruchomieniu odczyta plik txt i doda go odpowiednio do bazy mySQL skrypt ma nastepujaca ostac:

  1. <?php
  2.  
  3. include(&#092;"./inc/funkcje.inc.php\");
  4. $produkty=file(&#092;"dowrzucenia.txt\");
  5. $ilosc_produktow=count($produkty);
  6.  
  7. for ($i=0; $i<$ilosc_produktow; $i++)
  8. {
  9. $linia=explode(&#092;"|\", $produkty[$i]);
  10.  
  11. $baza = baza();
  12.  
  13. $wynik = zapytanie (&#092;"INSERT INTO `akcesoria` (`id`, `id_dzialu`, `nazwa`, `producent`, `opis`, `cena`, `marza`, `podatek`
    ,
  14. `aktywne`) VALUES ('', '$linia[2]', '$linia[0]', '$linia[1]', '', '$linia[3]', '30', '$linia[5]', '1') \");
  15.  
  16. $wynik = zapytanie ('SELECT id FROM akcesoria ORDER BY id DESC LIMIT 1');
  17. $numerek = mysql_fetch_array($wynik);
  18.  
  19. $wynik = zapytanie (\"INSERT INTO `cennik` (`id`, `id_produktu`, `nazwa`, `cena`, `marza`, `podatek`, `promocja`) VALUES ('', 'A-$linia[2]-$numerek[id]', '$linia[0]', '$linia[3]', '30', '$linia[5]', '0') \");
  20. }
  21.  
  22. if ($i=$ilosc_produktow)
  23. echo \"oki wszystko\";
  24. ?>


natomiast plik dowrzucenia.txt

Kod
SKAŁA GRZEWCZA MINI 5W RH-2E|ZooMed|3|45.47|55.47|22|55.47
SKAŁA GRZEWCZA STANDART 10W RH-1E|ZooMed|3|59.91|73.09|22|73.09
SKAŁA GRZEWCZA GIANT 15W RH-3E|ZooMed|3|80.75|98.52|22|98.52


nie wiem co zrobilem zle sad.gif bo niechce mi wrzucac tego do bazy sad.gif moze ktos moglby w jakis sposob pomoc i/lub usprawnic moj skrypt ?smile.gif z gory dziekuje za wszystkie sugestie i podpowiedzi smile.gif
Dabroz
A co konkretnie nie działa? Jaki błąd się pokazuje?
Bakus
  1. <?php
  2. $wynik = zapytanie (&#092;"INSERT INTO `akcesoria` (`id`, `id_dzialu`, `nazwa`, `producent`, `opis`, `cena`, `marza`, `podatek`
    ,
  3. `aktywne`) VALUES ('', '$linia[2]', '$linia[0]', '$linia[1]', '', '$linia[3]', '30', '$linia[5]', '1') \");
  4. ?>

Co to jest za funkcja "zapytanie" ?

Taki kod zadziała...
  1. <?php
  2. $wynik = mysql_query(&#092;"INSERT INTO `akcesoria` (`id`, `id_dzialu`, `nazwa`, `producent`, `opis`, `cena`, `marza`, `podatek`
    ,
  3. `aktywne`) VALUES ('', '\" . $linia[2] . \"', '\" . $linia[0] . \"', '\" . $linia[1] . \"', '', '\" . $linia[3] . \"', '30', '\" . $linia[5] . \"', '1') \");
  4. ?>

Poprawiłem "zapytanie" na "mysql_query" i wstawiłem zmienne tablicowe jak manual przykazał...
To samo musisz zrobić z pozostałymi zapytaniami...

@Dabroz: Przy błędach składni nie potrzeba wyniku działania... (komunikatu o błędzie...)
Gość_kober
no wlasnie najgorsze jest to ze nie pokazuje zadnego bledu winksmiley.jpg kiedys ten kod zadzialal wrzucilo sie jakies 50% z tego co sie mialo wrzucic a dzis juz nic nie dziala... nawet jezeli probuje wyswietlic ilosc linii w pliku pokazuje mi ciagle 1 chociaz w pliku jest cos ponad 140 poduktow mozeby jakies ograniczenia czasowe porobic? albo cos takiego? nie mam pomyslu jak zrobic zeby to dzialalo a pilnie tego potrzebuje sad.gif

  1. <?php
  2. function zapytanie ($zapytanie)
  3. {
  4. $pytanie = &#092;"$zapytanie\";
  5. $wynik_ = mysql_query($pytanie);
  6.  
  7. return $wynik_;
  8. }
  9. ?>
Dabroz
@Bakus --> Racja, ale uznałem że brakujące funkcję są includowane. A błędy w zapisie to fakt.

  1. <?php
  2. $baza = baza();
  3. ?>


Co to robi? Domyślam się że z bazą się łączy. Ale jak? $baza to obiekt czy wynik łączenia, czy co...

Lepiej podaj treść inc/funkcje.inc.php, Gość_kober
Guest
to jest czesc pliku z funkjami ktory jest wykorzystywany przez to cos smile.gif

  1. <?php
  2. //otwieranie poł&plusmn;czenia z baza
  3. function baza ()
  4. {
  5. $host_db=&#092;"localhost\"; // adres bazy
  6. $user_db=&#092;"sklep\";  // login do bazy
  7. $haslo_db=&#092;"*********\";  // haslo do bazy
  8.  
  9. $baza = mysql_connect ($host_db, $user_db, $haslo_db);
  10. mysql_select_db(&#092;"sklep\"); // nazwa bazy 
  11.  
  12. return $baza;
  13. }
  14.  
  15. function zapytanie ($zapytanie)
  16. {
  17. $pytanie = &#092;"$zapytanie\";
  18. $wynik_ = mysql_query($pytanie);
  19.  
  20. return $wynik_;
  21. }
  22. ?>
Luke
Jezeli Twoje dane z pliku do wrzucenia.txt odpowiadaja dokladnie strukturze tabeli w bazie danych to moglbys uzyc

Kod
LOAD DATA LOCAL INFILE 'dowrzucenia.txt' INTO TABLE twoja_tabela LINES TERMINATED BY '\r\n';


Gdzie poszczegolne wartosci sa oddzielone od siebie tabami.

Kod
TERMINATED BY '\r\n'
potrzebne jest jesli plik byl tworzony w srodowisku windows...
Gość_kober
1. niestety nie sa tak jak proponujesz a zmiana zeby ta byly troche by zajely winksmiley.jpg
2. sa wykorzystywane 2 tabele a wrzucajac tak jak proponujesz wrzucilbym jedynie do jednej a tabela cennik bylaby nie ruszona smile.gif wiec niestety ten pomysl odpada smile.gif
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.