Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych a plik tekstowy, Dodawanie rekordów do bazy danych z pliku tekstowego.
damianpsp2000
post 15.11.2013, 15:16:53
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


Witam!
Mam problem z dodaniem do bazy danych rekordów za pomocą PHP z pliku *.txt.

Tak wygląda plik *.txt:

  1. 1/1;
  2. 2/1;
  3. 3/1;
  4. 4/1;
  5. 5/1;
  6. 6/1;
  7. 7/1;
  8. 8/1;
  9. 9/1;
  10. 10/1;
  11. 11/1;
  12. 12/1;
  13. 13/1;
  14. 14/1;
  15. 15/1;
  16. 16/1;
  17. 17/1;
  18. 18/1;
  19. 19/1;
  20. 20/1;
  21. 21/1;
  22. 22/1;
  23. 23/1;
  24. 24/1;
  25. 25/1;
  26. 26/1;
  27. 27/1;
  28. 28/1;
  29. 29/1;
  30. 30/1;
  31. 31/1;
  32. 32/1;
  33. 1/2;
  34. 2/2;
  35. 3/2;
  36. 4/2;
  37. 5/2;
  38. 6/2;
  39. 7/2;
  40. 8/2;
  41. 9/2;
  42. 10/2;
  43. 11/2;
  44. 12/2;
  45. 13/2;
  46. 14/2;
  47. 15/2;
  48. 18/2;
  49. 19/2;
  50. 20/2;


Oczywiście w pliku tym jest więcej danych o tej strukturze.
Chciałbym zapisywać liczbę przed znakiem "/" do tabeli w polu o nazwie "x", a po znaku "/" w polu o nazwie "y".

Próbowałem robić jakiś skrypt, ale nie działa on tak jak chcę.
Wygląda tak:

  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', '');
  4. mysql_select_db('asd10');
  5.  
  6. $plik = fopen('ocean.txt', 'r');
  7. flock($plik, 1);
  8.  
  9. $plik2 = fread($plik, filesize('ocean.txt'));
  10. fclose($plik);
  11.  
  12. $explode = explode(';', $plik2);
  13. $ilosc = count($explode);
  14.  
  15. for($i=1; $i<$ilosc; $i++){
  16.  
  17. $ciag[$i] = ''.$explode[$i].'';
  18. $explode2 = explode('/', $ciag[$i]);
  19.  
  20. mysql_query("INSERT INTO test SET etap = '3', kraj = 'wolne', x = '".$explode2[0]."', y = '".$explode2[1]."'");
  21.  
  22. }
  23.  
  24. ?>


Bardzo proszę o pomoc, dziękuję z góry oraz pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
nospor
post 15.11.2013, 15:28:13
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A patrzyles jak wyglada twoje zapytanie z danymi?

echo "INSERT INTO test SET etap = '3', kraj = 'wolne', x = '".$explode2[0]."', y = '".$explode2[1]."'";

Po za tym lektura obowiazkowa:
Temat: Jak poprawnie zada pytanie
i wyswietlaj ewentualne bledy zapytan


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 15:33:24
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


Cytat(nospor @ 15.11.2013, 15:28:13 ) *
A patrzyles jak wyglada twoje zapytanie z danymi?

echo "INSERT INTO test SET etap = '3', kraj = 'wolne', x = '".$explode2[0]."', y = '".$explode2[1]."'";

Po za tym lektura obowiazkowa:
Temat: Jak poprawnie zada pytanie
i wyswietlaj ewentualne bledy zapytan


Wiem, że powinno być VALUES ale robie to dla siebie, do pomocy tylko.

@edit
Proszę o jeszcze jakieś wskazówki.

Ten post edytował damianpsp2000 15.11.2013, 15:38:09
Go to the top of the page
+Quote Post
nospor
post 15.11.2013, 15:48:10
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jakie VALUES.... ja nie mowie nic VALUES tylko bys sprawdzil jak wyglada zapytanie po wstawieniu zmiennych oraz czy zapytanie nie daje bledow. Wszystko masz w linku. Umiejetnosc czytania ze zrozumieniem to podstawa.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 15:51:18
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


Ok, tyle, że wszystko się do bazy danych dodaje, tylko zawsze w "x" jest liczba "0", a w "y" jest "1".
Go to the top of the page
+Quote Post
nospor
post 15.11.2013, 15:53:42
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i oto sie miedzy innymi pytalem, bys sprawdzil jak wyglada wygenerowane zapytanie :/ Ja naprawde po chinsku pisze? Podalem ci nawet kod bys zobaczyl jak wyglada, no ale po co....


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 15:55:05
Post #7





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


Ok, przepraszam za swój błąd. W jaki sposób napisać, by to działało, tzn. dodawało poprawne liczby do bazy?
Go to the top of the page
+Quote Post
nospor
post 15.11.2013, 15:59:36
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przepraszasz za blad, ale jednoczesnie lejesz nadal na to co ci napisalem :/ To po co na forum przychodzisz?

Napisze jeszcze raz, bo widze masz problemy z czytaniem po polsku. Uwaga, przelaczam sie na polski:

sprawdz co zawieraja zmiennej na poszczegolnym etapie, a bedziesz wiedzial gdzie masz blad.

var_dump($plik2);
var_dump($ciag[$i]);
var_dump($explode2);
echo "INSERT INTO test SET etap = '3', kraj = 'wolne', x = '".$explode2[0]."', y = '".$explode2[1]."'";

Naprawde tak ciezko zrobic to o co prosze i wpisac to wkodzie we wlasciwym miejscu?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 16:06:32
Post #9





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


  1. array(2) { [0]=> string(3) " 2" [1]=> string(1) "1" } array(2) { [0]=> string(3) " 3" [1]=> string(1) "1" }


To zwraca "var_dump($explode2);", oczywiście nie jest to całość, ale wszystko idzie dobrze po kolei. Więc nie wiem dlaczego baza zapisuje tylko 0 i 1.

A to zwraca echo zapytania:

  1. INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 2', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 3', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 4', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 5', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 6', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 7', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 8', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 9', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 10', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 11', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 12', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 13', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 14', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 15', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 16', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 17', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 18', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 19', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 20', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 21', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 22', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 23', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 24', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 25', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 26', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 27', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 28', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 29', y = '1'INSERT INTO test SET etap = '3', kraj = 'wolne', x = ' 30', y = '1'


też nie jest to całość, wygląda dobrze więc nie rozumiem dlaczego źle dodaje się do bazy danych.

Ten post edytował damianpsp2000 15.11.2013, 16:11:50
Go to the top of the page
+Quote Post
nospor
post 15.11.2013, 16:25:55
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




x = ' 3'
tu masz spacje zbedna

a 1 chyba widzisz ze masz w explode2


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 16:44:42
Post #11





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


Dobra, już wszystko działa. Dzięki! smile.gif
Go to the top of the page
+Quote Post
nospor
post 15.11.2013, 16:54:15
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Glupie var_dump a rozwiazalo sprawe. A ilez trzeba bylo sie o te var_dump i echo naprosic.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianpsp2000
post 15.11.2013, 17:03:22
Post #13





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 10.07.2012

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


No ok wink.gif Przepraszam raz jeszcze.
Go to the top of the page
+Quote Post
viking
post 15.11.2013, 17:49:35
Post #14





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tak swoją drogą:

  1. $dane = file('ocean.txt', FILE_IGNORE_NEW_LINES);
  2.  
  3. foreach ($dane as $k) {
  4. var_dump (explode('/', rtrim($k, ';')));
  5. }


--------------------
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: 14.08.2025 - 00:40