Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> rozdzielenie danych przechowywanych w $_SESSION
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


witam!
mam maly problem, przedstawia sie on nastepujaco:
mam pewna tablice $_SESSION['aa'] w ktorej przechowuje rozne dane (tzn tablica ta moze ale nie musi zawieraz jedna lub wiecej danych);
w dalszej czesci skryptu musze dane z tej tablicy wyciagnac i wstawic do bazy (postgres).. i tu zaczynaja sie schody, gdyz jesli moja tablica $_SESSION['aa'] zawiera wiecej niz 1 dana, wszystkie one sa wstawiane do jednej komorki..
przyklad:
  1. <?php
  2. $tablica=implode($_SESSION['aa']); //powiedzmy ze zawiera ona kilka danych, np. 'xx', 'yy', 'zz'
  3. $policz_elementy=count($_SESSION['aa']);
  4. //wstawiamy dane
  5.  
  6. for ($i=1; $i<$policz_dane+1; $i++)
  7. {
  8. $zapytanie="insert into testowa (wartosci) values ('$tablica');";
  9. $wynik=pg_query($polaczenie, $zapytanie);
  10. }
  11. ?>


w takim wypadku do bazy dodana zostanie jedna komorka zawierajaca (w tym wypadku jedna dana..) 'xxyyzz';
no ale 'xx', 'yy' i 'zz' to trzy rozne dane przechowywane tylko w tej samej tablicy..
jak zrobic by dane zostaly rozdzielone i kazde z nich z osobna dodane do swojej wlasnej komorki?

z gory dzieki za sugestie!
pzdr!
Go to the top of the page
+Quote Post
babejsza
post
Post #2





Grupa: Zarejestrowani
Postów: 407
Pomógł: 1
Dołączył: 4.03.2003
Skąd: warszawa

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


  1. <?php
  2. foeach($_SESSION['aa'] as $value)
  3. {
  4.  $zapytanie="insert into testowa (wartosci) values ('$value')";
  5. $wynik=pg_query($polaczenie, $zapytanie);
  6. }
  7. ?>


Oczywiście przy założeniu, że dane w sesji są w tablicy.

czyli np.:

  1. <?php
  2. $_SESSION['aa'] = array(1, 2, 3, 4);
  3. ?>


Ten post edytował babejsza 10.04.2007, 15:28:41
Go to the top of the page
+Quote Post
starach
post
Post #3





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Super i wykonujesz dzięki temu 5 zapytań jeśli jest 5 pól w tablicy.
<?php
Kod
$values ='';
foreach($_SESSION['aa'] as $value)
{
  $values .= "'$value',";
}
// i trzeba jeszcze usunac ostatni przecinek z $values
$values = substr($values, 0, strlen($values)-1);
$zapytanie="insert into testowa (nazwa_pola) values($values)";
$wynik=pg_query($polaczenie, $zapytanie);
?>
Go to the top of the page
+Quote Post
misty
post
Post #4





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


babejsza-dziekuje:)

orglee, wystarczy:
  1. <?php
  2. foreach ($_SESSION['aa'] as $data)
  3. {
  4. $zapytanie="insert into testowa (wartosci) values ('$data');";
  5. $wynik=pg_query($polaczenie, $zapytanie);
  6. }
  7. ?>


i chodzi ladnie i bez problemow.
a co do tego ze wczesniej zliczalam elementy tablicy to po prostu myslalam ze moze zrobic jakas petle ktora bedzie rozdzielac dane w tablicy $_SESSION i bedzie je wrzucac do bazy az do momentu < wielkosc_tablicy + 1.
no ale moj pomysl nie byl najlepszy, po prostu probowalam cos wykombinowac;) za to babejszy smiga:)
Go to the top of the page
+Quote Post
starach
post
Post #5





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Faaaajnie (ironia)
Wyobraź sobie tylko kiedy na stronę wejdzie powiedzmy 1 K użytkowników
i nagle będzie trzeba wywołać to dla nich wszystkich. Ile będzie zapytań do bazy ? 1000 * 5 =
Owszem są to rozważania czysto teoretyczne,
ale jak już się pisze skrypty to powinno się zwracać uwagę na wydajność.
Przynajmniej tak mi się wydaje...
Go to the top of the page
+Quote Post
misty
post
Post #6





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


ej no wyluzuj..
przeciez zdaje sobie z tego sprawe ze moj pomysl nie jest dobry, dlatego poszukalam porady na tym forum.
a to ze wczesniej na wlasna reke probowalam znalezc jakies wlasne rozwiazanie (w tym przypadku zle mi wyszlo) to chyba nic haniebnego?


btw. wiesz moze jak zrobic zlaczenie 2ch foreach?
tzn tych tablic sesyjnych mam wiecej.. czyli w wiekszej ilosci tabel musze rozdzielic dane nim je wprowadze do bazy. chodzi mi o cos takiego:

  1. <?php
  2. foreach (($_SESSION['aa'] as $data) && ($_SESSION['bb'] as $value))
  3. {
  4. $pyt="insert into tabela (wartosc_jeden, wartosc_dwa) values ('$data', '$value');";
  5. $wynik=pg_query($polaczenie, $pyt);
  6. }
  7. ?>


tzn oczywiscie ten warunek zlaczenia '&&' tu jest zle, chodzi mi o to jak uzyskac taki efekt jak za pomoca 'and' (rozdziel jedno i drugie wtedy wstaw do bazy)
Go to the top of the page
+Quote Post
starach
post
Post #7





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Ja jestem całkowicie wyluzowany, natomiast ironizowanie wypowiedzi zdarzeń etc. to mój specyficzny styl bycia - taki znak firmowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozwól że uściślę swoją wypowiedź.
Wykonujecie zapytanie w pętli zamiast posłużyć się składnią alternatywną polecenia SQL co może skutkować spadkiem wydajności.

Mam nadzieję że to napisałem mniej .... nieuprzejmym sposobem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

edit>
I jak edytujesz posta to nie wykorzystuj błędu forum IPB (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował orglee 10.04.2007, 19:05:35
Go to the top of the page
+Quote Post
misty
post
Post #8





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


spoko nie gniewam sie prawie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
a bede jeszcze mniej sie gniewac jak mi podpowiesz jak te foreach polaczyc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
starach
post
Post #9





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


  1. <?php
  2. $array1 = array(1,2,3,4,5);
  3. $array2 = array('jeden','dwa','trzy','cztery','piec');
  4. $values='';
  5. for($i=0; $i<count($array1); $i++)
  6. {
  7. $values .= "('{$array1[$i]}','{$array2[$i]}'),";
  8. }
  9.  
  10. $pyt="INSERT INTO `tabela` (`wartosc_jeden`, `wartosc_dwa`) values$values";
  11. $pyt=substr($pyt,0,strlen($pyt)-1).';';
  12. echo "<hr>$pyt<hr>";
  13. ?>

Nie da się łączyć dwóch tablic w jednej instrukcji foreach()
aha nawiasy klamrowe {,} są do tego żeby ich zawartość została odczytana jako wyrażenie.
Bez nich zostało by to odczytane jako $array1 a [$i] było by potraktowane jako tekst.
Hmm co jeszcze. No chyba to wszystko co do wyjaśnienia.
Pięć złotych zadość uczynienia proszę (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
misty
post
Post #10





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


ciezki ten Twoj zapis..
gdzie on rozdziela jedna tablice od drugiej?
a zapytanie w postaci:
  1. <?php
  2. $pyt="INSERT INTO `tabela` (`wartosc_jeden`, `wartosc_dwa`) values ($values)";
  3. ?>

przeciez nie przejdzie, bo bedzie krzyczal ze ma wiecej kolumn niz podales mu wartosci..

no i bez sensu ze sie nie da laczyc dwoch tabel w foreac (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

przerobilam to mniej wiecej na cos takiego:
  1. <?php
  2. $tablica_jeden=array($_SESSION['bb']);
  3. $tablica_dwa=array($_SESSION['cc']);
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="('{$tablica_jeden[$i]}' , '{$tablica_dwa[$i]}')";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1, $values, $values);";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. $wynik02=pg_query($polaczenie, $zapytanie02);
  14. ?>

no ale ni w cholere.. zreszta jakos nie do konca do mnie przemawia ten kod :/
Go to the top of the page
+Quote Post
starach
post
Post #11





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Przetestuj to co ci napisałem bo to co podałem jest składnią alternatywną polecenia INSERT w SQL'u i nie ma mowy żeby nie działało.
Jak to gdzie rozdziela jedną tablicę od drugiej ?
Jeżeli masz string w postaci 1,2,3,4,5,6,7,8 to zastosuj na nim funkcję explode() żeby każda z liczb znalazła się w osobnym elemencie tablicy.

$tablica = explode(',' , '1,2,3,4,5,6,7,8');
I masz to co ja napisałem czyli:
$array1 = array(1,2,3,4,5);
Go to the top of the page
+Quote Post
misty
post
Post #12





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


no ja to wlasnie testuje i kombinuje..
wyglada to u mnie dokladnie tak jak podalam w poprzednim poscie.. ale to co otrzymuje:
Warning: pg_query() [function.pg-query]: Query failed: ERROR: column "zrodlo_finansowania_id" is of type integer but expression is of type record LINE 1: insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_i... ^ HINT: You will need to rewrite or cast the expression. in /var/www/htdocs/dodaj_zrodlov2.php on line 233" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
starach
post
Post #13





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Wyświetl zapytanie jakie wykonujesz przez pg_query() przed wysłaniem.
I wklej tutaj na forum.
Go to the top of the page
+Quote Post
misty
post
Post #14





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


  1. <?php
  2. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1, $values, $values);"
  3. ?>


gdzie zadanie_id to jest cos co na razie wpisuje na sztywno (wartosc=1), zrodlo_finansowania to elementy tablicy $_SESSION['cc'], zas kwota to elementy tablicy $_SESSION['bb']..
Go to the top of the page
+Quote Post
starach
post
Post #15





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Ehh no i źle robisz skoro wartości są generowane dynamicznie to jak w pozostałych nawiasach ma się znaleźć 1 ?
  1. <?php
  2. $tablica_jeden=array($_SESSION['bb']);
  3. $tablica_dwa=array($_SESSION['cc']);
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="('{$tablica_jeden[$i]}' , '{$tablica_dwa[$i]}')";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1, $values, $values);";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. echo '<b>'.$zapytanie02.'</b>';
  14. ?>

i napisz tutaj wynik.
Go to the top of the page
+Quote Post
misty
post
Post #16





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


wkleilam dokladnie to co podales, nie zmieniajac zupelnie nic. a oto wynik:

insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1, ('Array' , 'Array'), ('Array' , 'Array'));" title="Zobacz w manualu PHP" target="_manual

no a w bazie pusto..
z tego co rozumiem ( a przynajmniej probuje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) to w $values sa obie tablice.. i nie sa one rozdzielane..

tzn rozdzielic te 2 tablice, to nie problem wystarczy zamiast samego $values dac np. $values1 i $values2 i kazda tablice do osobnej zmiennej. tylko ze on nie widzi wartosci tych tablic, tzn tego co w nich jest. wie tylko ze to 'array'..
Go to the top of the page
+Quote Post
starach
post
Post #17





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


echo '<b>'.$_SESSION['cc'].'<br>';
echo $_SESSION['bb'].'</b><br>';
To jeszcze ten kod wykonaj i podaj na forum,
lub jeśli dane są ważne (nie do upubliczniania) to je zmień,
ale niech struktura jaka była taka pozostanie. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
misty
post
Post #18





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


obie zwrocily Array..
no wlasnie po to potrzebne foreach.. by mi elementy pokazalo tablicy..
co za dziadostwo!
Go to the top of the page
+Quote Post
starach
post
Post #19





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Tfu źle pomyliłem się.
Zamiast echo daj print_r()
a dokładnie:
  1. <?php
  2. echo '<hr><pre>'.print_r($_SESSION['cc'],true).'<hr>'.print_r($_SESSION['bb'],true).'</pre><hr>';
  3. ?>


Ten post edytował orglee 10.04.2007, 21:15:03
Go to the top of the page
+Quote Post
misty
post
Post #20





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


otrzymalam:


insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1, ('Array'), ('Array'));
------------------------------------------------------
Array
(
[0] => 1
[1] => 2
)
-------------------------------------------
Array
(
[0] => 111
[1] => 666
)
" title="Zobacz w manualu PHP" target="_manual


i wiesz, to by sie nawet zgadzalo. tzn pierwsza tablica przechowuje id pewnych elementow ktore wybieram z listy rozwijanej, wybralam elementy o id 1 i 2 wiec wyswietlilo ok. co do drugiej tablicy tez sie zgadza, bo wyswietlila wpisane przeze mnie przykladowe kwoty, czyli 111 i 666..
tylko czemu w takim razie nie dziala to wstawianie do bazy?
Go to the top of the page
+Quote Post
starach
post
Post #21





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="(1,'{$tablica_jeden[$i]}' , '{$tablica_dwa[$i]}')";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values$values";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. echo '<b>'.$zapytanie02.'</b>';
  14. ?>

Wykonaj i wklej zapytanie które zostanie zwrócone.
Jeszcze jedna sprawa jeśli w twojej bazie danych pole zadanie_id jest ustawione na auto_increment to nie musisz go podawać a wydaje mi się że właśnie tak jest skoro za każdym razem chcesz podawać jeden więc powyższy kod może równie dobrze wyglądać tak:
  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="('{$tablica_jeden[$i]}' , '{$tablica_dwa[$i]}')";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zrodlo_finansowania_id, kwota) values$values";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. echo '<b>'.$zapytanie02.'</b>';
  14. ?>
Daj tutaj kod który zostanie wyświetlony teraz będzie już prawdopodobnie dobrze i możesz zamienić kod wyświetlający zapytanie na ekranie na kod który wysyła je do bazy.
Go to the top of the page
+Quote Post
misty
post
Post #22





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


zrobilam tak:
  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $wartosc_jeden='';
  6. $wartosc_dwa='';
  7.  
  8. for($i=0; $i<count($tablica_jeden); $i++)
  9. {
  10.  
  11. $wartosc_jeden .="('{$tablica_jeden[$i]}')";
  12. $wartosc_dwa .="('{$tablica_dwa[$i]}')";
  13.  
  14. }
  15.  
  16. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1,$wartosc_jeden, $wartosc_dwa);";
  17. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  18. echo '<b>'.$zapytanie02.'</b>';
  19. ?>

sorki, ale troche mnie razi to wrzucanie tablic do jednej zmiennej, tzn jest dla mnie malo czytelne. efekt:

insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values (1,('898')('8888888'), ('1')('3'));" title="Zobacz w manualu PHP" target="_manual

z zerowym skutkiem w bazie:/

co do dalszej czesci Twojego posta zadanie_id nie jest identyfikatorem tej tablicy. id tej tablicy jest serial i sam sie zwieksza przy kazdym dodaniu. zadanie_id to bedzie pozniej pobierane skad inad jak sie z tym uporam, na razie dla swietego spokoju daje '1'. zreszta to i tak baza testowa..
Go to the top of the page
+Quote Post
starach
post
Post #23





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Zrozum dziewczyno, kobieto, babo czy jak tam wolisz żeby cię nazywano (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ,
że nigdy tego nie wrzucisz do bazy w ten sposób.
To musi być w tej właśnie jednej zmiennej więc najpierw sprawdź jak ja to rozwiązałem a potem zacznij marudzić (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)

insert into t_przejsciowa (zrodlo_finansowania_id, kwota) values ('898''8888888'), ('1','3'); Taki powinien być efekt końcowy.
Tak powinno wyglądać zapytanie żadnych dodatkowych nawiasów.
Zlituj się nad moderatorami forum bo będą wycinać, jak się obudzą 60 % naszej rozmowy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Wykonaj kod który ci napisałem bo jest on dobrze napisany a jak uważasz inaczej to napisz PM do któregoś z opiekunów forum niech cię ochrzanią że im głowę zawracasz.

------- Jeżeli cię obraziłem swoją wypowiedzią to przepraszam,
ale ja staram się ci tylko pomóc ;(
Go to the top of the page
+Quote Post
misty
post
Post #24





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


dobrze szefie, juz wrzucilam tak jak poprzednio pisales (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) nic nie zmienialam!
i otrzymalam:

insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values(1,'9898' , '1')(1,'898' , '2');" title="Zobacz w manualu PHP" target="_manual


ps. nie obraziles mnie w zaden sposob, na prawde dziekuje ze probujesz mi pomoc bo ja tu strasznie utknelam i nie moge nic dalej robic :/
ps2. milo ze wreszcie ktos na tym forum zwraca sie do mnie w formie zenskiej (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
starach
post
Post #25





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Hehe
No i w takiej postaci powinno się udać dodać do tabeli.
Trzeba tylko zamiast wyświetlania dać dodawanie do bazy.
---- Eee guzik. Nie wiem dlaczego ale zniknął przecinek między nawiasami ..
(1,'9898' , '1'),(1,'898' , '2'); - tak powinno być.
Zobacz czy nie wywaliłaś przez przypadek tego przecinka.
Cytat
ps2. milo ze wreszcie ktos na tym forum zwraca sie do mnie w formie zenskiej biggrin.gif

Bo to przecież takie nie kobiece zajęcie - do garów (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował orglee 10.04.2007, 22:41:14
Go to the top of the page
+Quote Post
misty
post
Post #26





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


no nie mialam faktycznie, juz dodalam:
  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="(1,'{$tablica_jeden[$i]}','{$tablica_dwa[$i]}'),";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values$values;";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. $wynik02=pg_query($polaczenie, $zapytanie02);
  14. echo '<b>'.$zapytanie02.'</b>';
  15. ?>


tylko, tej, teraz to o jeden za duzo przecinek daje i dane sie i tak nie dodaja:


Warning: pg_query() [function.pg-query]: Query failed: ERROR: syntax error at or near ";" LINE 1: ...finansowania_id, kwota) values(1,'787','1'),(1,'7777','8'),; ^ in /var/www/htdocs/dodaj_zrodlov2.php on line 242
insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values(1,'787','1'),(1,'7777','8'),;" title="Zobacz w manualu PHP" target="_manual


tej, no to juz zmeczenie;) mialam jakis srednik niepotrzebny.. chodzi i dodaje;) i powiem Ci ze jak na poczatku oporna bylam Twojemu pomyslowi tak wreszcie juz kumam co i jak. nie wiem jak Ci dziekowac chlopie:)
Go to the top of the page
+Quote Post
starach
post
Post #27





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="(1,'{$tablica_jeden[$i]}','{$tablica_dwa[$i]}'),";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values$values;";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. $wynik02=pg_query($polaczenie, $zapytanie02);
  14. echo '<b>'.$zapytanie02.'</b>';
  15. ?>
$zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
Ta linijka wycina łańcuch znaków zostawiając ostatni przecinek.
W zmiennej $zapytanie02 zostają nawiasy bez ostatniego przecinka.
Dlaczego to nie działa ? Bo dodałaś na końcu poniższej linijki średnik:
$zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values$values;";
Poniższy kod generuje poprawne zapytanie:
  1. <?php
  2. $tablica_jeden=$_SESSION['bb'];
  3. $tablica_dwa=$_SESSION['cc'];
  4.  
  5. $values='';
  6. for($i=0; $i<count($tablica_jeden); $i++)
  7. {
  8. $values .="(1,'{$tablica_jeden[$i]}','{$tablica_dwa[$i]}'),";
  9. }
  10.  
  11. $zapytanie02="insert into t_przejsciowa (zadanie_id, zrodlo_finansowania_id, kwota) values$values";
  12. $zapytanie02=substr($zapytanie02,0,strlen($zapytanie02)-1).';';
  13. $wynik02=pg_query($polaczenie, $zapytanie02);
  14. echo '<b>'.$zapytanie02.'</b>';
  15. ?>

------------------
Kto by pomyślał że we mnie tyle cierpliwości.
Typowa jedynaczka. Zawsze musi mieć ostatnie zdanie i coś zmienić (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
misty
post
Post #28





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


to Cie zdziwie bo nie jestem jedynaczka:P i nic nie zmieniam tylko kombinuje:P cale zycie trzeba kombinowac;)
ps. a wogole to wyprzedzilam Twojego ost posta:

tej, no to juz zmeczenie;) mialam jakis srednik niepotrzebny.. chodzi i dodaje;) i powiem Ci ze jak na poczatku oporna bylam Twojemu pomyslowi tak wreszcie juz kumam co i jak. nie wiem jak Ci dziekowac chlopie:)" title="Zobacz w manualu PHP" target="_manual
nie czytasz moich postow dokladnie tylko ochrzaniasz;)
no nic, jeszcze raz dzieki za pomoc!!:) milego dnia!:)
Go to the top of the page
+Quote Post
starach
post
Post #29





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Nie ma za co właściwie to ja powinienem być wdzięczny nabiłem sobie dzięki tobie 1,2,3....14 postów O_O normalnie wytrzeszcz oczu.
(IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
edit>
Pierwsze zdanie out.
Może faktycznie nie zwróciłem uwagi
Masz rodzeństwo ? ... biedaki (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował orglee 11.04.2007, 09:10:10
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 22.08.2025 - 16:39