Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tablica sesyjna i jej wyświetlanie
hunter444
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.10.2017

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


Witam. Mam problemy z pętlą foreach wyświetlającą zawartość mojej tablicy
Tak wygląda formularz:
  1.  
  2. <form action="" method="post">
  3. <tr><td>Imię:</td><td> <input type="text" name="imie" value="<?= $imie; ?>" /> </td></tr>
  4. <tr><td>Nazwisko:</td><td> <input type="text" name="nazwisko" value="<?= $nazwisko; ?>" /> </td></tr>
  5. <tr><td>Płeć</td><td> <input type="radio" name="plec" value="kobieta"
  6. <?php if ((isset($_POST['plec']) && $_POST['plec'] == 'kobieta')) { echo 'checked="checked"';}?> />kobieta
  7. <input type="radio" name="plec" value="męźczyzna"
  8. <?php if (isset($_POST['plec']) && $_POST['plec'] == 'męźczyzna') echo 'checked="checked"'; ?> />Mężczyzna</td></tr>
  9.  
  10. <tr><td>Nazwisko panieńskie:</td><td> <input type="text" name="n_panien" value="<?= $n_panien; ?>" /> </td></tr>
  11. <tr><td>E-mail:</td><td> <input type="text" name="email" value="<?= $email; ?>" /> </td></tr>
  12. <tr><td>kod pocztowy:</td><td> <input type="text" name="kod" value="<?= $kod; ?>" /> </td></tr>
  13. <center><button type="submit" name="submit">Wyślij</button></center> <br /><br />
  14.  
  15. </form>
  16.  


Tak wygląda wpisywanie do tablicy formularza (session start jest oczywiście na początku pliku php

  1.  
  2. $n=0;
  3. $tablica[$n]['imie']=trim($_POST["imie"]);
  4. $tablica[$n]['nazwisko']=trim($_POST["nazwisko"]);
  5. $tablica[$n]['plec']=trim($_POST["plec"]);
  6. $tablica[$n]['n_panien']=trim($_POST["n_panien"]);
  7. $tablica[$n]['email']=trim($_POST["email"]);
  8. $tablica[$n]['kod']=trim($_POST["kod"]);
  9. $n++;
  10. $_SESSION['tab'] = $tablica;


Tak wygląda pętla w której próbuję wyświetlić dane z tablicy, niestety nie umiem jej poprawnie zbudować aby wyświetliła to co chcę. Bardzo proszę o podanie przykładowego kodu w którym będę mógł zrozumieć w jaki sposób dobrać się do mojej tablicy:

  1.  
  2. <?php
  3.  
  4.  
  5. foreach($_SESSION['tab'] as $indeks)
  6. {
  7. foreach($_SESSION['tab'][$indeks] as $nazwa)
  8. {
  9. foreach($_SESSION['tab'][$indeks][$nazwa] as $wartosc)
  10. {
  11. echo $indeks;echo $nazwa; echo $wartosc;
  12. }
  13. }
  14. }
  15.  
  16.  
  17. ?>
  18.  


indeks- pętla miala lecieć po wszystkich wybiarach
nazwa - po wszystkich nazwach np. imie, nazwisko itd.
wartość - po wszystkich wartościach danej nazwy np. Jan, Kowalski ....

Jako wynik działania pętli chciałem uzyskać taki efekt
0 Imie: Jan
0 Naziwsko: Kowalski
.......
1 Imie: Krzysztof
1 Nazwisko: Nowak

Ten post edytował hunter444 16.10.2017, 22:00:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hunter444
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.10.2017

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


Niestety chyba czegoś nie zrozumiałem. Poniższy kod

  1. $tablica = array();
  2. {
  3. $tablica['imie']=trim($_POST["imie"]);
  4. $tablica['nazwisko']=trim($_POST["nazwisko"]);
  5. $tablica['plec']=trim($_POST["plec"]);
  6. $tablica['n_panien']=trim($_POST["n_panien"]);
  7. $tablica['email']=trim($_POST["email"]);
  8. $tablica['kod']=trim($_POST["kod"]);
  9. }
  10. $_SESSION['tab'] = $tablica;
  11. }
  12.  
  13.  
  14. foreach($_SESSION['tab'] as $wartosc) {
  15. echo '<b> Imię </b>'.$wartosc['imie'].'<br />';
  16. echo '<b> Nazwisko </b>'.$wartosc['nazwisko'].'<br />';
  17. echo '<b> Płeć </b>'.$wartosc['plec'].'<br />';
  18. echo '<b> Zazwisko panieńske </b>'.$wartosc['n_panien'].'<br />';
  19. echo '<b> email </b>'.$wartosc['email'].'<br />';
  20. echo '<b> kod pocztowy</b>'.$wartosc['kod'].'<br />';
  21. echo '<br /> <br />';
  22. }


Powoduje dwa błędy:
1. Każde kolejne dodawanie rekordu wymazuje poprzednie rekordy. Przykładowo dodaje użytkownika, potem dodaje kolejnego i poprzedni się kasuje. Chcę dodać n użytkowników w formularzu a następnie wyświetlić n użytkowników w raz z ich atrybutami (imie, nazwisko, ...)

2. Dla danych wejściowych: Adam, Nowak,Mężczyzna, Nowak, mmm@wp.pl, 73-111 wyświetla się następująca zawartość tablicy (czyli pierwszy znak każdego pola):




Imię A
Nazwisko A
Płeć A
Zazwisko panieńske A
email A
kod pocztowyA


Imię N
Nazwisko N
Płeć N
Zazwisko panieńske N
email N
kod pocztowyN


Imię m
Nazwisko m
Płeć m
Zazwisko panieńske m
email m
kod pocztowy m


Imię N
Nazwisko N
Płeć N
Zazwisko panieńske N
email N
kod pocztowyN


Imię m
Nazwisko m
Płeć m
Zazwisko panieńske m
email m
kod pocztowym


Imię 7
Nazwisko 7
Płeć 7
Zazwisko panieńske 7
email 7
kod pocztowy7



Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 02:39