Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własna funkcja , coś w stylu while i mysql_fetch_assoc
Forum PHP.pl > Forum > PHP
mat-bi
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
drPayton
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
mat-bi
nie o to chodzi

  1. $results = mysql_fetch_assoc($query); // Zwraca wszystkie rekordy
  2.  
  3. while($results = mysql_fetch_assoc($query)) // Iteruje po rekordach
Quantum
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. }
drPayton
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
Quantum
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
mat-bi
w sumie myślałem o wykorzystaniu globals, ale dzięki

Crozin
@mat-bi: Skąd wytrzasnąłeś pomysł, że mysql_fetch_assoc może zwrócić wszystkie wyniki?
mat-bi
zn. wszystkie z zapytania, trochę chyba źle napisałem wink.gif
cycofiasz
Jeszcze gorzej teraz napisałeś.
mat-bi
Nie wiem, coś mi się pomieszało. Przepraszam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.