Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zapamiętanie wartości po wyjściu z pętli
kunegunda
post 23.02.2010, 17:13:15
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.10.2009

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


A więc tak mam taką oto pętle foreach:

  1. foreach($koszyk as $klucz => $wartosc)
  2. {
  3. $nazwa=mysql_query("SELECT nazwa FROM sklep WHERE id = '".$klucz."'");
  4. $nazwa=mysql_fetch_row($nazwa);
  5. $n=$nazwa[0];
  6. echo $n;
  7. }


Pętla wyświetla mi produkty z koszyka. Co mam zrobić aby po wyjściu z pętli, zmienna $n wyświetlała mi wszystkie wartości (tak jak w pętli) a nie tylko ostatni element tablicy?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
qrzysztof
post 23.02.2010, 17:24:48
Post #2





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

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


W pętli musiałoby być:

  1. $n[]=$nazwa[0];

(składuje wszystkie elementy w tablicy)

Potem, poza pętlą do wyświetlenia albo następna pętla, albo print_r


--------------------
Znalazłeś sam rozwiązanie swojego problemu? Nie pisz "już wiem, do zamknięcia". Podziel się rozwiązaniem - inni będą mieli łatwiej.
Go to the top of the page
+Quote Post
kunegunda
post 23.02.2010, 17:39:59
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.10.2009

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


Cytat(qrzysztof @ 23.02.2010, 17:24:48 ) *
W pętli musiałoby być:

  1. $n[]=$nazwa[0];

(składuje wszystkie elementy w tablicy)

Potem, poza pętlą do wyświetlenia albo następna pętla, albo print_r


Dzięki działa, tylko print_r wyświetla mi coś takiego:

  1. Array ( [0] => Jaśmin nagokwiatowy [1] => Skimmia japońska [2] => Sośnica japońska )


Dało by się to wyświetlić w normalny sposób tzn. tak :

  1. Jaśmin nagokwiatowy Skimmia japońska Sośnica japońska


bez używania kolejnej pętli?

Go to the top of the page
+Quote Post
qrzysztof
post 23.02.2010, 18:15:32
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 19
Dołączył: 25.04.2009

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


Print_r zawsze wyświetli to w takiej formie. Można to tylko ładniej sformatować, umieszczając między <pre></pre> czyli np:

  1. echo '<pre>;
  2. print_r....
  3. echo '</pre>';


Ale skoro to ma być wyjście dla klienta, to domyślam się, że odpada. Pozostaje wtedy albo pętla albo zamiast zrzucania wszystkiego do tablicy, można zrzucać do jednej zmiennej (choć to chyba mniej eleganckie):
oddzielone spacją:

  1. $n.=$nazwa[0].' ';


albo złamaniem wiersza:

  1. $n.=$nazwa[0].'<br /> ';


--------------------
Znalazłeś sam rozwiązanie swojego problemu? Nie pisz "już wiem, do zamknięcia". Podziel się rozwiązaniem - inni będą mieli łatwiej.
Go to the top of the page
+Quote Post
bemol
post 23.02.2010, 18:25:30
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


A może po prostu lepiej jest jednym zapytaniem pobrać wszystkie interesujące nas rekordy i później tylko jedną pętlą wyświetlić zawartość?
czym jest klucz i w jaki sposób są otrzymywane wartości klucza?


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
kunegunda
post 23.02.2010, 20:07:16
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.10.2009

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


Dzięki za wskazówki. Mam jeszcze jeden mały problem. Po wpisaniu takiego kodu:

  1. foreach($koszyk as $klucz => $wartosc)
  2. {
  3. $f[]=$wartosc[0];
  4. }
  5. echo $f[0];
  6. echo $f[1];
  7. echo $f[2];
  8. echo $f[3];
  9. echo $f[4];


Skrypt wyświetlił liczby: 4,4,1,9
A w tablicy jest kolejno: 4,45,1,99

Dlaczego druga liczba jest niewyświetlana? Da się coś z tym zrobić ( w prosty sposób ) ?

Ten post edytował kunegunda 23.02.2010, 20:11:13
Go to the top of the page
+Quote Post
bemol
post 23.02.2010, 20:14:15
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


bo
  1. $wartosc[0];

w tym momencie zmienna wartość jest typu string. Użycie na końcu indeksu ([x]) znaczy, że ma wyświetlić z ciągu znaków, znak na pozycji x.
W twoim przypadku wyświetla bo dałeś [0].
przypisz po prostu $wartość.

Poza tym nie lepiej tak:
  1. foreach($koszyk as $klucz => $wartosc) {
  2. echo $wartosc;
  3. }


Ten post edytował bemol 23.02.2010, 20:16:04


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
kunegunda
post 24.02.2010, 19:08:55
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 6.10.2009

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


bemol, dzięki wielkei za pomoc po wpisaniu samej $wartosc skrypt działa tak jak powinien.
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: 18.07.2025 - 02:41