Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V  < 1 2 3 >  
Reply to this topicStart new topic
> Dane z pliku XML do bazy SQL
brzanek
post 27.08.2014, 08:19:58
Post #21





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


W innym temacie dane piszę ręcznie i tam wszystko idzie do bazy danych.
A w tym muszę zapisać dane pobierane przez xml typu temperatura i inne do bazy danych chodzi mi o same wartoście i z tym mam problem.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 08:21:50
Post #22





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Ale to nie ma zadnej roznicy czy wkladasz dane recznie czy ze zmiennych.

Poza tym w tamtym temacie tez nie wkladasz recznie tylko ze zmiennych.... O to
VALUES('$dzien', '$godzina', '$intensywnostmin', '$lat','$lng','$flaga','$miejsce')");
to jest wkladanie ze zmiennych.


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

"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
brzanek
post 27.08.2014, 08:26:35
Post #23





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Pewnie masz rację zwał jak zwał, ale możesz mi z tym pomóc? Nie wiem jak napisać kod, który doda mi rekordy z tymi danymi.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 08:28:01
Post #24





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No weź napisz tego insserta i nie czaruj... Przeciez juz inserty umiesz pisac. Wysil sie troche wkoncu sam.
Jak cos napiszesz i nie bedzie dzialac, to pomoge dalej, ale zacznij chociaz sam.

W tej petli co masz teraz zrobioną przeze mnie, masz dodac INSERT do bazy. Niczym to sie nie rozni od inserta, ktorego robisz w innym temacie.


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

"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
brzanek
post 27.08.2014, 09:18:41
Post #25





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Dobra zmieniłem trochę bazę danych
Do pliku dodałem to
  1. include ("db.php");
  2.  
  3. $time = $_POST['time'];
  4. $symbol = $_POST['symbol'];
  5. $temperature = $_POST['temperature'];
  6. $windDirection = $_POST['windDirection'];
  7. $windSpeed = $_POST['windSpeed'];
  8. $pressure = $_POST['pressure'];
  9. $add = mysql_query("INSERT INTO choszczno(time, symbol, temperature, windDirection, windSpeed, pressure) VALUES('$time', '$symbol', '$temperature', '$windDirection','$windSpeed','$pressure')");

Po odświerzeniu strony dodało jeden rekord ale z wartością 0
Więc coś nie tak.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 09:21:18
Post #26





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Jaki post? A gdzie petla?

Przeciez napisalem wyraznie:
zapytanie masz wlozyć w petle, którą ci napisalem. A wartosci to są te wartosci, ktore w tej petli wyswietlales a nie jakies rzeczy niz gruszki ni z pietruszki z posta.


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

"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
brzanek
post 27.08.2014, 09:29:08
Post #27





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


ok dałem to w tej pętli
  1. include ("db.php");
  2. $add = mysql_query("INSERT INTO choszczno('.$time['from'].', '.$time->symbol['var'].', '.$time->temperature['value'].', '.$time->windDirection['value'].', '.$time->windSpeed['mps'].', '.$time->pressure['value'].') VALUES('$time', '$symbol', '$temperature', '$windDirection','$windSpeed','$pressure')");

Wyskakuje błąd w tej linii
  1. $add = mysql_query("INSERT INTO choszczno('.$time['from'].', '.$time->symbol['var'].', '.$time->temperature['value'].', '.$time->windDirection['value'].', '.$time->windSpeed['mps'].', '.$time->pressure['value'].') VALUES('$time', '$symbol', '$temperature', '$windDirection','$windSpeed','$pressure')");


Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/djdandi/ftp/1/2015/choszcznomini.php on line 111
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 09:35:55
Post #28





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Przepraszam, wlasnie stracilem cierpliwosc... Moze odzyskam za kilka godzin smile.gif Byc moze w tym czasie pomoze ci ktos inny.


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

"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
Turson
post 27.08.2014, 09:45:20
Post #29





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


1. Poprawna składnia wygląda np. tak
  1. INSERT INTO users(`id`, `login`) VALUES(1, 'Jan Kowalski')

2. Nazwy kolumn bierze się w ` (przykład wyżej), a nie ' (twój kod)
3. Jakim cudem nazwy kolumn masz w zmiennych ohmy.gif
4. '.$time['from'].' - takie coś jest bez sensu w tym przypadku. Podstawy: łączenie stringów/zmiennych


@edit
Literówka poprawiona. smile.gif

Ten post edytował Turson 27.08.2014, 09:58:45
Go to the top of the page
+Quote Post
brzanek
post 27.08.2014, 09:52:47
Post #30





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Zrobiłem tak jak podałeś ale wyskakuje błąd
  1. $add = mysql_query("INSERT INTO choszczno(`time` `symbol` `temperature` `windDirection` `windSpeed` `pressure`) VALUES('.$time['from'].', '.$time->symbol['var'].', '.$time->temperature['value'].', '.$time->windDirection['value'].', '.$time->windSpeed['mps'].', '.$time->pressure['value'].')");
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 09:56:01
Post #31





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Nazwy kolumn oddziela się przecinkiem a nie spacją
Jesli do łączenia tekstow uzywasz '..' to i tekst ma sie zaczynac i konczyc ' a nie "
A wartosci tekstowe w zapytaniu bierze się w apostrofy, czego nadal nie robisz.

@Turson a Ty jak podajesz jak ma wygladac poprawna składnia, to patrz czy sam nie robisz w niej bzdurnych literowek.... tongue.gif


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

"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
brzanek
post 27.08.2014, 10:09:34
Post #32





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Dałem tak
  1. $add = mysql_query('INSERT INTO choszczno(`time`,`symbol`,`temperature`,`windDirection`,`windSpeed`,`pressure`) VALUES('.$time['from'].', '.$time->symbol['var'].', '.$time->temperature['value'].', '.$time->windDirection['value'].', '.$time->windSpeed['mps'].', '.$time->pressure['value'].')');

Strona wyświetla się ale nie dodają się rekordy do bazy danych sql

@nospor Nazwy kolumn oddziela się przecinkiem a nie spacją (zrobione)
Jesli do łączenia tekstow uzywasz '..' to i tekst ma sie zaczynac i konczyc ' a nie " (zrobione)
A wartosci tekstowe w zapytaniu bierze się w apostrofy, czego nadal nie robisz. '.$time->windDirection['value'].' czy to o to chodzi? Tak zawsze były.
Go to the top of the page
+Quote Post
Turson
post 27.08.2014, 10:11:59
Post #33





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


A gdzie masz tekst w apostrofach? :/ Bo jedyne co zrobiłeś to zmieniłeś " na ' i łączysz zmienne...
"INSERT INTO tabela(dupa1, dupa2) VALUES('$dupa1', '$dupa2')"
to nie jest naprawde trudne

@down
Nie trzyma jednej, bo już sam zmienił na inną.

Ten post edytował Turson 27.08.2014, 10:18:11
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 10:14:54
Post #34





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Super, zdecydowanie lepiej.
A wartosci tekstowe docelowo mają wygladac tak:
values ('wartosc tekstowa')
A u ciebie docelowo wygladaja tak
values (wartosc tekstowa)

Tak ma byc:
  1. $add = mysql_query('INSERT INTO choszczno(`time`,`symbol`,`temperature`,`windDirection`,`windSpeed`,`pressure`) VALUES(\''.$time['from'].'\', \''.$time->symbol['var'].'\', '.$time->temperature['value'].', '.$time->windDirection['value'].', '.$time->windSpeed['mps'].', '.$time->pressure['value'].')');

Jako tekst potraktowalem czas i symbol. Jesli jakies inne wartosci są tez tekstem, to masz zrobic analogicznie jak z czasem i symbolem

@Turson nie mieszaj już mu tych składni. Jak się trzyma jednej to niech się jej trzyma. I tak ledwo to ogarnia...


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

"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
brzanek
post 27.08.2014, 10:28:32
Post #35





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Ok działa zapisuje się tylko jest jeden problem jak odświerzam stronę to robią się nowe rekordy a powinno jeśli jest zmiana tylko je nadpisywać. Jutro jak wejdę ponownie na stronę to powinien pojawić się nowy rekord z nowymi danymi na kolejny dzień.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 10:32:49
Post #36





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Po pierwsze: zacznij w koncu uzywac znakow interpunkcyjnych... no wiesz: kropka, przecinek itp.

To zdanie:
Ok działa zapisuje się tylko jest jeden problem
powinno wygladac tak:
Ok, działa. Zapisuje się. Tylko jest jeden problem:
prawda ze czytelniej? Czytajacy nie musi sie zastanawiac gdzie konczy jedno a zaczyna drugie przez co czyta sie o wiele przyjemniej a nie jak u Ciebie wszystko ciurkiem i samemu trzeba wyłapywac kontekst :/

Co do problemu:
Mozesz to rozwiązac np. poprzez założenie unikalnych kluczy na wartosci, ktore będą mowic, ze dany zestaw danych moze pojawic sie tylko raz w tabeli smile.gif


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

"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
brzanek
post 27.08.2014, 10:35:55
Post #37





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Cytat(nospor @ 27.08.2014, 11:32:49 ) *
Co do problemu:
Mozesz to rozwiązac np. poprzez założenie unikalnych kluczy na wartosci, ktore będą mowic, ze dany zestaw danych moze pojawic sie tylko raz w tabeli smile.gif

To mnie zastrzeliłeś. Nie mam pojęcia jak to zrobić.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 10:38:33
Post #38





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Odnosze wrazenie, ze w tym temacie to wielokrotnie Cię zastrzeliłem i powinienes juz dawno 5 razy umrzec wink.gif

Manual mysql: UNIQUE KEY


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

"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
brzanek
post 27.08.2014, 11:30:01
Post #39





Grupa: Zarejestrowani
Postów: 427
Pomógł: 0
Dołączył: 8.11.2012

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


Ale widzisz na raz wykonuje się kilkanaście rekordów z racji tego, że to jest prognoza na kilka dni. Parametry w tym czasie mogą się powtarzać. Chodzi o to że jak będę odświerzał stronę to pojawiają się aktualizacje prognozy z pliku xml
Przykładowo:
Dzisiaj o 18:00 temperatura ma być 17 stopni (i tak też zapisało się do bazy danych)
Jak wejdę np: za godzinę to temperatura na godzinę 18:00 może wynieść 14 stopni i tu powinno to się nadpisać.
Oczywiście po 3 godzinach pojawiają się prognozy na kolejne dni co powinno dawać nowe rekordy do bazy danych.
Go to the top of the page
+Quote Post
nospor
post 27.08.2014, 11:34:31
Post #40





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No dobrze, wszystko się zgadza.
Dlatego ci tlumacze, że masz zalozyc UNIQUE KEY a zamiast
INSERT masz dac
INSERT....ON DUPLICATE KEY UPDATE
i wszystko bedzie cacy smile.gif

Jesli wiec to godzina jest wyznacza unikalnosc, to masz załozyc UNIQUE KEY na pole z data/godziną.


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

"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

3 Stron V  < 1 2 3 >
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: 28.03.2024 - 23:51