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 19.06.2011, 17:56:48
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 19.06.2011, 18:06:25
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 tongue.gif
Go to the top of the page
+Quote Post
mat-bi
post 19.06.2011, 18:08:08
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 19.06.2011, 18:08:46
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 19.06.2011, 18:11:00
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 wink.gif

Ten post edytował drPayton 19.06.2011, 18:14:02
Go to the top of the page
+Quote Post
Quantum
post 19.06.2011, 18:17:38
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 wink.gif
Go to the top of the page
+Quote Post
mat-bi
post 19.06.2011, 18:25:57
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 19.06.2011, 18:50:33
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 19.06.2011, 18:52:54
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 wink.gif
Go to the top of the page
+Quote Post
cycofiasz
post 19.06.2011, 19:00:14
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 19.06.2011, 19:24:35
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 smile.gif
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: 6.07.2025 - 01:54