Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z while, wyświetla się 1 wpis zamiast kilku..
camelx
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Mam mały problem. Napisałem funkcję, która powinna mi wyśiwetlać listę kategorii pobranych z bazy danych. Wygląda mniej więcej tak:
  1. <?php
  2. function make_categories ($catDisplay = 'menu')
  3. {
  4. global $mresult;
  5.  
  6. $sql = "SELECT * FROM ". CATS_TABLE ." ORDER BY cat_id";
  7. if ( !($qresult = mysql_query($sql, $mresult)) ) error ('Nie mozna wybrac kategorii z bazy');
  8. while ($cat = mysql_fetch_array($qresult))
  9. {
  10. if ($catDisplay == 'menu')
  11. {
  12. $cat_list = links ('?c='.$cat['cat_id'], $cat['cat_desc']).'
  13. <hr />';
  14. }
  15. elseif ($catDisplay == 'list')
  16. {
  17. $cat_list = $cat['cat_desc'].'<br />';
  18. }
  19. }
  20. return $cat_list;
  21. }
  22. ?>

Niestety "echo make_categories()" wyśiwtla mi tylko ostatni wpis z bazy... To jest pewnie jakaś drobnosta, ale dziś mi trochę nie wychodzi myslenie smile.gif

Czy ktoś wie może jak "naprawić" tą funkcję, żeby wyświetlała całą listę kategorii?

Ten post edytował camelx 4.01.2006, 21:01:39


--------------------
windows nie jest wirusem... wirusy coś robią :)
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zjadłes kropki. Powinno być .= bo inaczej zawsze wyświetli ostatnią kategorię. Dlatego, że za każdym obrotem pętli nadpisujesz zmienną $cat_list
  1. <?php
  2. function make_categories ($catDisplay = 'menu')
  3. {
  4. global $mresult;
  5.  
  6. $sql = "SELECT * FROM ". CATS_TABLE ." ORDER BY cat_id";
  7. if ( !($qresult = mysql_query($sql, $mresult)) ) error ('Nie mozna wybrac kategorii z bazy');
  8. while ($cat = mysql_fetch_array($qresult))
  9. {
  10. if ($catDisplay == 'menu')
  11. {
  12. $cat_list .= links ('?c='.$cat['cat_id'], $cat['cat_desc']) . '<hr />';
  13. // zjadłes kropki
  14. }
  15. elseif ($catDisplay == 'list')
  16. {
  17. $cat_list .= $cat['cat_desc'] . '<br />';
  18. // zjadłes kropki
  19. }
  20. }
  21. return $cat_list;
  22. }
  23. ?>

  1. <?php
  2.  
  3. echo make_categories();
  4.  
  5. ?>
Go to the top of the page
+Quote Post
camelx
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

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


Działa smile.gif Dzięki.
Tak myslałem, że to jakaś drobnostka winksmiley.jpg


--------------------
windows nie jest wirusem... wirusy coś robią :)
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 Aktualny czas: 21.08.2025 - 07:41