Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Własna funkcja , coś w stylu while i mysql_fetch_assoc
mat-bi
post
Post #1





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Witam,

Zastanawiam się, czy jest możliwe coś takiego:

  1.  
  2. while($cos = moja_funkcja($lorem))


, tak, jak to jest w funkcjach mysql:

  1.  
  2. $query = mysql_query("SELECT * FROM `tabela`");
  3.  
  4. while($row = mysql_fetch_assoc($query))


, czy jest to tylko zarezerwowane dla bibliotek?

Za odpowiedzi dziękuję,

Pozdrawiam

Ten post edytował mat-bi 19.06.2011, 17:57:15
Go to the top of the page
+Quote Post
drPayton
post
Post #2





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Oczywiście, że jest to możliwe. Czemu nie? Cięzko sprawdzić samemu, zamiast pytać? ;>

  1. function testowa()
  2. {
  3. return time();
  4. }
  5.  
  6.  
  7. while($row = testowa()) {
  8. echo $row;
  9. }


Oczywiście, nie radze odpalać, bo funkcja jak widać, nie ma końca (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
mat-bi
post
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


nie o to chodzi

  1. $results = mysql_fetch_assoc($query); // Zwraca wszystkie rekordy
  2.  
  3. while($results = mysql_fetch_assoc($query)) // Iteruje po rekordach


Ten post edytował mat-bi 19.06.2011, 18:08:22
Go to the top of the page
+Quote Post
Quantum
post
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Oczywiście, że jest możliwe, obadaj przykład:
  1. $resource = array(1, 2, 3, 4, 5);
  2.  
  3. $pointer = -1;
  4.  
  5. function abc($res) {
  6. global $pointer;
  7. $pointer++;
  8. if (isset($res[$pointer])) {
  9. return $res[$pointer];
  10. }
  11. return false;
  12. }
  13.  
  14. while ($row = abc($resource)) {
  15. echo $row, '<br/>';
  16. }
Go to the top of the page
+Quote Post
drPayton
post
Post #5





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Właśnie zacząłem pisac inny przykład z current() i next() (operuje na referencji do tablicy wejściowej), ale to wyżej również pokazuje tą sama ideę.
Tyle, że używanie global jest, delikatnie pisząc, głupie :S


A, proszę:
  1. function testowa(&$inputArray)
  2. {
  3. $tmp = current($inputArray);
  4. next($inputArray);
  5. return $tmp;
  6. }
  7.  
  8. $array = array('jeden', 'dwa', 'trzy', 'cztery', 'pięć');
  9.  
  10. while($row = testowa($array)) {
  11. echo '<br>--'.$row;
  12. }


Oczywiście, najlepiej użyć SPL'owych iteratorów, które służą dokładnie do tego celu właśnie (IMG:style_emoticons/default/wink.gif)

Ten post edytował drPayton 19.06.2011, 18:14:02
Go to the top of the page
+Quote Post
Quantum
post
Post #6





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


pewnie, oczywiście masz rację co do global, chciałem pokazać tj. dokładnie piszesz samą idee bez zagłębiania we wskaźniki, tylko tak jakby zbudowanie tego mechanizmu (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
mat-bi
post
Post #7





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


w sumie myślałem o wykorzystaniu globals, ale dzięki

Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@mat-bi: Skąd wytrzasnąłeś pomysł, że mysql_fetch_assoc może zwrócić wszystkie wyniki?
Go to the top of the page
+Quote Post
mat-bi
post
Post #9





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


zn. wszystkie z zapytania, trochę chyba źle napisałem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
cycofiasz
post
Post #10





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Jeszcze gorzej teraz napisałeś.
Go to the top of the page
+Quote Post
mat-bi
post
Post #11





Grupa: Zarejestrowani
Postów: 690
Pomógł: 92
Dołączył: 6.02.2011

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


Nie wiem, coś mi się pomieszało. Przepraszam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 22:54