Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Zwiększanie tablicy
narki1
post 6.04.2009, 20:55:01
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 26.06.2007

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


Od początku.
Mam formularz ,którym przesyłam dwie zmienne $id i $name.
Formularz:
  1. <form action='dodaj.php' method='POST'>
  2. <input type='submit' value='DODAJ' /><br />
  3. <input name='id' type='text' value='1' maxlength='2' size='1'/><br />
  4. <input name='name' type='text' />
  5. </form>


następnie w pliku dodaj.php chcę użyć sesji do zbudowania tablicy:
dodaj.php:
  1. <?php
  2. if (!isset($_SESSION['counter']))
  3. $_SESSION['counter']=(0);
  4. $tablica=$_SESSION['counter'];
  5. $_SESSION['id'][$tablica]['ide']=$_POST['id'];
  6. $_SESSION['name'][$tablica]['nam']=$_POST['name'];
  7. $_SESSION['counter']=++$_SESSION['counter'];
  8.  
  9. print_r($_SESSION['id']);
  10. ?>

Dostaję komunikat
Cytat
Cannot use string offset as an array

Chcę osągnąć tablicę ,która za każdym kliknięciem na formularzu "DODAJ" zwiększała się o elementy "id" oraz "name".
Próbowałem też push_array ale nie chce ruszyć.
Pomóżcie bo poległem na indeksowaniu tablicy.
Oczywiście zmienne w sesji są zarejestrowane a jak wywalę tablice i zrobię
  1. <?php
  2. echo $_SESSION['id']
  3. ?>
to jest OK.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post 6.04.2009, 21:13:19
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $_SESSION['counter']=++$_SESSION['counter'];
  3. ?>

Ale kombinujesz. tongue.gif

  1. <?php
  2. $_SESSION['counter']++;
  3. ?>

przecież wystarczy...

Cytat
Cannot use string offset as an array

Cytat
to jest OK.

To wychodzi na to, że to nie jest tablicą. Ja bym robił to na odwrót:
  1. <?php
  2. $_SESSION[$tablica]['id']['ide']=$_POST['id'];
  3. ?>

Będzie logiczniej; trzymaj rekord w kupie, a nie tak rozsypujesz.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
narki1
post 7.04.2009, 07:05:59
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 26.06.2007

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


Cytat
Ale kombinujesz.

Przepraszam - stare nawyki z turbo pascala.
Co do błędu to już go nie ma ale chyba wciąż to nie jest tablica ponieważ gdy zrobię
  1. <?php
  2. print_r($_SESSION['id']);
  3. ?>
po dodaniu kilku elementów powinienem uzyskać całą tablicę a dostaję tylko ostatnio dodany element.

Ten post edytował narki1 7.04.2009, 07:16:19
Go to the top of the page
+Quote Post
erix
post 7.04.2009, 14:49:38
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Skoro tak, to wychodzi na to, że licznik indeksu w tablicy jest cały czas ten sam. winksmiley.jpg

Przejdź na moje rozwiązanie.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
narki1
post 7.04.2009, 18:56:48
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 26.06.2007

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


Przeszedłem na licznik ++ od razu.
Jak echuję licznik to się zwiększa prawidłowo.

yahoo.gif Zrobiłem trochę inaczej niż zakładałem na początku ale jest dobrze:
  1. <?php
  2. if (!isset($_SESSION['counter']))
  3. $_SESSION['counter']=(0);
  4. $tablica=$_SESSION['counter'];
  5.  
  6. $_SESSION['name']= $_POST['name'];
  7. $_SESSION['id'][$tablica]=Array($_SESSION['name'],'może być następna zmienna');
  8. $_SESSION['counter']++;
  9.  
  10. print_r($_SESSION['id']);
  11. ?>

Mała rzecz a cieszy
Dzięki 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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:02