Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Pętla, pokazuje tylko pierwszy wynik..., while i return
DREEMus
post 12.02.2009, 16:59:39
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


  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

Ten post edytował DREEMus 12.02.2009, 17:00:16


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post 12.02.2009, 17:00:50
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kefirek
post 12.02.2009, 17:04:35
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


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. ?>


Ten post edytował kefirek 12.02.2009, 17:05:22
Go to the top of the page
+Quote Post
DREEMus
post 13.02.2009, 13:01:51
Post #4





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


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

Ten post edytował DREEMus 13.02.2009, 13:02:11


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
nospor
post 13.02.2009, 13:05:43
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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...)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DREEMus
post 13.02.2009, 13:17:55
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


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. ?>


Ten post edytował DREEMus 13.02.2009, 13:32:08


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
nospor
post 13.02.2009, 13:20:36
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
DREEMus
post 13.02.2009, 13:28:27
Post #8





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


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 ...

Ten post edytował DREEMus 13.02.2009, 13:31:20


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
nospor
post 13.02.2009, 13:30:09
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 25.07.2025 - 10:06