Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z zapisaniem zmiennej
attimo
post
Post #1





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


  1. function nowy()
  2. {
  3. if ($_POST['Dodaj'])
  4. {
  5. $idd = $_POST['id'];
  6. $polaczenie = mysql_connect('...', '...', '...') or die("brak polaczenia: ".mysql_error());
  7. $baza = mysql_select_db('attimo_cba_pl',$polaczenie) or exit("nie wybrano bazy, blad". mysql_error());
  8. mysql_query("SET NAMES utf8");
  9. mysql_query("SET CHARACTER_SET utf8_polish_ci");
  10. $zapytanie = "SELECT id,nazwa, opis, zdjecie, cena FROM Produktyelektronika WHERE id = $idd";
  11. $wynik = mysql_query($zapytanie, $polaczenie) or die(mysql_error());
  12. $rekord = mysql_fetch_assoc($wynik);
  13. $_SESSION['koszyk'][$i] = $idd;
  14.  
  15. }
  16. }


Na początek może wyjaśnię jak w moim przekonaniu miało to działać. Po wciśnięciu przycisku dodaj do zmiennej tablicowej superglobalnej $_SESSION['koszyk'] chciałbym zapisać id tego właśnie produktu, aby potem moc wyswietlic produkty ktore zostaly dodane przy uzyciu wlasnie tego id. Wiem, że sposób może "toporny" ale raczej jestem samoukiem i próbuje wszystko robić na swój własny sposób. Wracając jednak do tematu id zapisuje się w tablicy, ale za kazdym razem bedzie zapisane do 0 pozycji w tablicy chciałem wstawic zmienną $i ktora po kazdym wykonaniu funkcji zwiekszalaby sie o 1. Tylko jak to zrobić nie moge przeciez ustawic wartosci 0 dla tej zmiennej na początku funkcji i potem poddać ją inkrementacji bo zawsze będzie to 0. Próbowałem użyć zmiennej globalnej przed funkcją, ale to też na niewiele się zdało.

Ten post edytował attimo 7.02.2010, 19:29:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


To może $_SESSION['koszyk'][] = $idd;


--------------------
Go to the top of the page
+Quote Post
attimo
post
Post #3





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


Tak też próbowałem, rezultat jest taki sam choć powinno zapisać nową wartość do kolejnego elementu tablicy.
Go to the top of the page
+Quote Post
Blame
post
Post #4





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


To może tak(wygooglowane):
  1. if(!isset($_SESSION['koszyk'])) //sprawdzamy czy koszyk już istnieje
  2. {
  3. $_SESSION['koszyk']=array(); //jeśli nie to tworzymy
  4. }
  5. if(!isset($_SESSION['id']))
  6. {
  7. $_SESSION['id']=0; //dzięki temu nie będzie się nadpisywać
  8. }
  9. if(isset($_GET['item']))
  10. {
  11. $_SESSION['koszyk'][$_SESSION['id']]=$idd;
  12. $_SESSION['id']++; //zwiększamy
  13. }


--------------------
Go to the top of the page
+Quote Post
attimo
post
Post #5





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


  1. function nowy()
  2. {
  3. if ($_POST['Dodaj'])
  4. {
  5. if(!isset($i))
  6. {
  7. $i=0;
  8. }
  9. $idd = $_POST['id'];
  10. $polaczenie = mysql_connect('...', '...', '...') or die("brak polaczenia: ".mysql_error());
  11. $baza = mysql_select_db('attimo_cba_pl',$polaczenie) or exit("nie wybrano bazy, blad". mysql_error());
  12. mysql_query("SET NAMES utf8");
  13. mysql_query("SET CHARACTER_SET utf8_polish_ci");
  14. $zapytanie = "SELECT id,nazwa, opis, zdjecie, cena FROM Produktyelektronika WHERE id = $idd";
  15. $wynik = mysql_query($zapytanie, $polaczenie) or die(mysql_error());
  16. $rekord = mysql_fetch_assoc($wynik);
  17. $_SESSION['koszyk'][$i] = $idd;
  18. $i++;
  19. print_r($_SESSION['koszyk']);
  20. }
  21. }


Pozmieniałem troche kod i teraz powinno zwiększać, niestety tak nie robi sad.gif

Ten post edytował attimo 7.02.2010, 20:13:27
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


napisałem Ci krótki kod zrób analogocznie, u mnie to działa
  1. if(!isset($_SESSION['cart'])){
  2. $_SESSION['cart'] = array();
  3. }
  4. $SESSION['cart'] = array_push($_SESSION['cart'],$_GET['addc']);
  5.  
  6. print_r($_SESSION['cart']);


albo wstaw to już dostosowałem
  1. if(!isset($_SESSION['koszyk'])){
  2. $_SESSION['koszyk'] = array();
  3. }
  4. $SESSION['koszyk'] = array_push($_SESSION['koszyk'],$idd);
Go to the top of the page
+Quote Post
attimo
post
Post #7





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


  1. function nowy()
  2. {
  3. if ($_POST['Dodaj'])
  4. {
  5. $idd = $_POST['id'];
  6. $polaczenie = mysql_connect('mysql.cba.pl', '...', '...') or die("brak polaczenia: ".mysql_error());
  7. $baza = mysql_select_db('attimo_cba_pl',$polaczenie) or exit("nie wybrano bazy, blad". mysql_error());
  8. mysql_query("SET NAMES utf8");
  9. mysql_query("SET CHARACTER_SET utf8_polish_ci");
  10. $zapytanie = "SELECT id,nazwa, opis, zdjecie, cena FROM Produktyelektronika WHERE id = $idd";
  11. $wynik = mysql_query($zapytanie, $polaczenie) or die(mysql_error());
  12. $rekord = mysql_fetch_assoc($wynik);
  13. if(!isset($_SESSION['koszyk'])){
  14. $_SESSION['koszyk'] = array();
  15. }
  16. $SESSION['koszyk'] = array_push($_SESSION['koszyk'],$idd);
  17. print_r($_SESSION['koszyk']);
  18. }
  19. }


Wygląda to tak i niestety nie dodaje kolejnego elmentu tylko zawsze zapisuje na 0 sad.gif

Ten post edytował attimo 7.02.2010, 21:04:18
Go to the top of the page
+Quote Post
tehaha
post
Post #8





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


  1. #
  2. $_SESSION['koszyk'] = array_push($_SESSION['koszyk'],$idd);


zobacz brakuje tam _ przy $_SESSION
Go to the top of the page
+Quote Post
attimo
post
Post #9





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


Błąd poprawiłem, ale teraz przy wyswietlaniu zawartosci tablicy
  1. print_r($_SESSION['koszyk']);
za każdym razem wyświetla 1 bez wzgledu co sie wybierze

Go to the top of the page
+Quote Post
tehaha
post
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


a spróbuj to bo w tamtym błąd zrobiłem

  1. function nowy()
  2. {
  3. if ($_POST['Dodaj'])
  4. {
  5. $idd = $_POST['id'];
  6. $polaczenie = mysql_connect('mysql.cba.pl', '...', '...') or die("brak polaczenia: ".mysql_error());
  7. $baza = mysql_select_db('attimo_cba_pl',$polaczenie) or exit("nie wybrano bazy, blad". mysql_error());
  8. mysql_query("SET NAMES utf8");
  9. mysql_query("SET CHARACTER_SET utf8_polish_ci");
  10. $zapytanie = "SELECT id,nazwa, opis, zdjecie, cena FROM Produktyelektronika WHERE id = $idd";
  11. $wynik = mysql_query($zapytanie, $polaczenie) or die(mysql_error());
  12. $rekord = mysql_fetch_assoc($wynik);
  13. if(!isset($_SESSION['koszyk'])){
  14. $_SESSION['koszyk'] = array();
  15. }
  16. array_push($_SESSION['koszyk'],$idd);
  17. print_r($_SESSION['koszyk']);
  18. }
  19. }
Go to the top of the page
+Quote Post
attimo
post
Post #11





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


To samo... może błąd jest gdzieś indziej ?
Go to the top of the page
+Quote Post
Blame
post
Post #12





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


A na pewno zaczynasz skrypt od session_start()? Tak dla pewności pytam winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
attimo
post
Post #13





Grupa: Zarejestrowani
Postów: 115
Pomógł: 6
Dołączył: 23.01.2010

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


W dokumencie gdzie wyswietlane sa produkty mialem to:
  1. if(!isset($_SESSION['koszyk'])){
  2. $_SESSION['koszyk'] = array();
  3. }

i w funkcji rowniez usunalem to z dokumentu i zostalo tylko w funkcji do tego dodalem session start() w miejscu gdzie mam wszystkie funkcje i dziala jak należy. Dziękuje za pomoc
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 Aktualny czas: 22.08.2025 - 05:09