Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] wyjście po za while
kielich
post
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam, wiem ze to jest ze tak powiem dziecinne pytanie ale pisząc skrypty nigdy sie nadtym nie zastanawiałem:
Czy jest możliwosć wyjscia ze zmianna poza while ale zeby dalej były wszytskie rekordy wyswietlane np.

  1.  
  2. ....
  3. while($cos=mysql_fetch_array($temp))
  4. {
  5. echo $cos['name'];
  6. }

i tak bedzie wszystko ok wypisze mi wszytsko ale chciałbym np. zrobić tak lecze wiem ze to nie zadziała:

  1. ...
  2. while($cos=mysql_fetch_array($temp))
  3. {
  4. $asd=$cos['name'];
  5. }
  6. echo $asd;


Jest jakas mozliwosc (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To masz na to 2 sposoby. Albo w pierwszej pętli while robisz tablicę z niezbędnymi danymi, jak tu już w kilku postach było, i w drugiej wypełniasz tymi danymi, albo robisz to co ja w ostatnim swoim poście, czyli składasz zapytanie już na poziomie tego pierwszego while, co jest moim zdaniem, bardziej optymalne. A czemu? Bo robisz całość w jednej, a nie dwóch pętlach. Przypatrz się postom dokładnie, bo jak dla mnie rozwiązanie w pierwszy sposób już masz podane od niemal początków przez moich kolegów tutaj, czyli:
  1. $coś = array()
  2. while( $row = mysql_fetch_array($temp) ){
  3. $coś[] = $row['kolumna'];
  4. }

Tak się wypełnia tablicę danymi, o których wspominasz. Ty jeszcze możesz jedynie potem usunąć duble używając array_unique() oraz eliminując ewentualny element pusty. Ale gdy Ci podali to rozwiązanie to stwierdziłeś, że "to nie to o co Ci chodzi". A czy w tej tablicy będzie jedna kolumna czy więcej kolumn to nieistotne. Elementem tablicy może być inna tablica. Po prostu nie znasz do końca możliwości języka chyba.
Dla mnie to nieistotne czy w pętli while podam do zapamiętania jedną czy kilka kolumn, to będzie i tak wiersz do którego się będę mogł odnieść jako $coś[0]['kolumna1'], $coś[0]['kolumna2'], jeśli tylko dobrze zapiszę to przy pobieraniu wyników. A zauważ, że Ci już takie rozwiązanie podali. Zwyczajnie zignorowałeś z powodu braku wiedzy rozwiązanie problemu zamiast je sprawdzić.

Nie dziwię się więc, że nikt nie potrafił Ci dogodzić z rozwiązaniem, bo zwyczajnie nawet nie sprawdziłeś, czy to jest to o co Ci chodzi. Jak widzisz, wisi ono już od iluś postów, ale ukręciłeś temu łeb twierdząc, że nim nie jest. Nagle teraz się okazuje, że chyba jednak tak bo przynajmniej z Twojego opisu jak mialo by ono wyglądać tak wynika.

EDIT: A to co zostało wyciągnięte przez zapytanie to JEST jedna wielka macierz wyników, tyle że zamiast do niej się odnosić jak zazwyczaj się uważa czyli: $wynik['wiersz']['kolumna'] używać można składni mysql_result($wynik, $wiersz, $kolumna).

To tylko inna forma zapisu, ale jak widać, przynajmniej niektórzy nie potrafią tego zauważyć. Bo czy forma zapisu jest istotna? Równie dobrze mogłem w pętli przeskakiwać wskaźnikiem ( mysql_data_seek ) i sobie odczytywać co chcę zamiast używać mysql_fetch_*, ale jest to mniej wydajne i manual o tym wspomina.

Ten post edytował thek 24.10.2009, 22:43:09
Go to the top of the page
+Quote Post

Posty w temacie
- kielich   [MySQL][PHP] wyjście po za while   23.10.2009, 17:53:55
- - _olo_1984   [PHP] pobierz, plaintext  $aJakas = array...   23.10.2009, 17:59:33
- - kielich   No nie działa tak jak bym chciał   23.10.2009, 18:12:06
- - _olo_1984   a jak byś chciał ?   23.10.2009, 18:13:09
- - kielich   tak jak wyzej napisałem a tak sie niedzieje próbow...   23.10.2009, 19:15:51
- - wNogachSpisz   można, zadziała, dalczego sam nie sprawdzisz?   23.10.2009, 20:00:28
- - kielich   Skoro mówie ze nie działa to logiczne ze sprawdzał...   23.10.2009, 21:47:06
- - piotrooo89   albo wrzucasz wszystko do tablicy, albo w sesjach/...   23.10.2009, 21:54:25
- - kielich   NO to mi tylko jedna wartosc wyciąga ;/ bo jest ...   23.10.2009, 23:39:55
- - thek   Ale Wy kombinujecie... Słyszał który o mysql_resul...   23.10.2009, 23:40:35
- - kielich   no tak ale ja chce odczytac zminna $aJakas po...   23.10.2009, 23:45:02
- - _olo_1984   wiesz co, może ty napisz co konkretnie chcesz zrob...   24.10.2009, 06:28:55
- - kielich   sam już nad tym myślałem ale nie wiem czy da się t...   24.10.2009, 16:48:08
- - thek   Chłopie...Ale pytanie nadal rozbija się o jedno. C...   24.10.2009, 19:21:32
- - kielich   niechce jednej wartosc wyciągnąc chce wsyztsko mie...   24.10.2009, 19:47:49
- - thek   To masz na to 2 sposoby. Albo w pierwszej pętli wh...   24.10.2009, 22:34:01
- - kielich   NO OK zrobiłem tak [PHP] pobierz, plaintext $zapyt...   24.10.2009, 23:41:36
- - thek   A ja Ci po raz XXXXXXXXX piszę, że Ty sam nie wies...   25.10.2009, 13:10:13


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: 3.10.2025 - 06:56