Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Pętla, pokazuje tylko pierwszy wynik...
Forum PHP.pl > Forum > Przedszkole
DREEMus
  1. <?php
  2. function projekty () {
  3.  
  4.    $dbWynik = mysql_query ("SELECT * FROM projekty ORDER BY data DESC LIMIT 5");
  5.  
  6.    while ($row = mysql_fetch_assoc ($dbWynik)) {
  7.        return '<p><a href="index.php?jezyk=' . $_GET['jezyk'] . '&strona=3&projekt=' . $row['id'] . '">' . $row['nazwa'] . '</a> &nbsp; v ' . $row['wersja'] . '</p>';
  8.    }
  9.    
  10.    }
  11. ?>


W phpMyAdmin ładnie pokazuje wszystko, a na stronce tylko pierwszy rekord sad.gif
Widzi ktoś tu błąd questionmark.gif
nospor
przeciez w petli dales return
Wiesz co robi return? Jak nie to zajrzyj do manuala do dzialu funkcje a sie dowiesz

http://pl.php.net/manual/pl/functions.returning-values.php
kefirek
Zobacz tak
  1. <?php
  2. function projekty () {
  3. $dbWynik = mysql_query ("SELECT * FROM projekty ORDER BY data DESC LIMIT 5");
  4. while ($row = mysql_fetch_assoc ($dbWynik)) {
  5. $wynik .= '<p><a href="index.php?jezyk=' . $_GET['jezyk'] . '&strona=3&projekt=' . $row['id'] . '">' . $row['nazwa'] . '</a> &nbsp; v ' . $row['wersja'] . '</p>';
  6.  
  7. }
  8. return $wynik;  
  9. }
  10. ?>
DREEMus
nospor już wiem do czego służy return smile.gif

a błąd był na stronie, a nie w funkcji ...
  1. <?php
  2. ...
  3. <!-- PROJEKTY -->
  4.    <h3><a href="index.php?strona=3">' . tytul (3) . ' ...</a></h3>
  5.    <p>' . projekty () . '</p><br>
  6. <!-- BETA.DEV -->
  7. ...
  8. ?>

tak pokazwał tylko jeden wynik!

  1. <?php
  2. ...
  3. <!-- PROJEKTY -->
  4.    <h3><a href="index.php?strona=3">' . tytul (3) . ' ...</a></h3>
  5.    <p>';
  6.    echo projekty (); echo '</p><br>
  7. <!-- BETA.DEV -->
  8. ...
  9. ?>

A tak pokazuje to co trzeba smile.gif
nospor
Cytat
nospor już wiem do czego służy return
No chyba nie bardzo, czytając dalsza tresc Twego posta

Cytat
a błąd był na stronie, a nie w funkcji ...
Jesli nic nie zmieniales w kodzie funkcji, to nie ma prawa dzialac ci prawidlowo.
Po pierwszym obrocie petli funkcja konczy swoje dzialanie i nie zwraca pozostalych 4 rekordow (w zapytaniu okresliles limit na 5) - dostajesz wiec tylko pierwszy rekord z zapytania.

A echo ktore dodales, powoduje ze teraz wyswietla ci sie ten jeden zwrocony rekord. (chodż na dobrą sprawe patrzac na kod, to echo tez tu jest zbedne, bo to co zwraca funckcja ty i tak laczysz w string szablonu - pewnie zrobiles poprawke co podal kefirek...)
DREEMus
zmieniłem return na echo ...
  1. <?php
  2. function projekty () {
  3.  
  4.    $dbWynik = mysql_query ("SELECT * FROM projekty ORDER BY data DESC LIMIT 5");
  5.  
  6.    while ($row = mysql_fetch_assoc ($dbWynik)) {
  7.        echo '<a href="index.php?strona=3&projekt=' . $row['id'] . '">' . $row['nazwa'] . '</a> &nbsp; v ' . $row['wersja'] . '<br>';
  8.        }
  9.    }
  10. ?>


i kod na stronie ...
  1. <?php
  2. <!-- PROJEKTY -->
  3.            <h3><a href="index.php?strona=3">' . tytul (3) . ' ...</a></h3>
  4.            <p>';
  5.            echo projekty (); echo '</p><br>
  6. <!-- BETA.DEV -->
  7. ?>
nospor
Cytat
nie, żadnych zmian w funkcji ...

blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif

Przeciez za pierwszym razem w funkcji miales return a teraz zamieniles to na echo.... kurcze, zeby tak bezczzelnie z takim tekstem....
najpierw ma return, kazesz mu przeczytac co to return, ten czyta, usuwa return a potem udaje ze nie, zadnych zmian....
DREEMus
mój błąd kombinowałem z funkcją smile.gif
i po "zapoznaniu się z manualem" zmieniłem na echo

nie wycofuje się z tego, że return był, ale bawiłem się tym wczoraj, a dziś patrze że mam już echo ...

PS. Ja chce się uczyć PHP, bo fajny język, ma możliwości które ogranicza tylko moja wiedza. Niestety zacząłem naukę wyrywkowo i teraz mam tego efekty ... Przeważnie zaglądam do manuala, ale tym razem poprostu tego nie zrobiłem.

PS2. Kiedy było tak ...
  1. <?php
  2. ...
  3. <!-- PROJEKTY -->
  4.   <h3><a href="index.php?strona=3">' . tytul (3) . ' ...</a></h3>
  5.   <p>' . projekty () . '</p><br>
  6. <!-- BETA.DEV -->
  7. ...
  8. ?>

nie wiem dlaczego nie chciał pokazać pozostałych 4 wyników ...
nospor
Cytat
Kiedy było tak ...
bo pewnie bylo jeszcze wtedy, gdy miales to return
Skoro chcesz sie uczyc, to do jasnej ciasnej analizuj informacje, ktore dostajesz
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.