Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z sortowaniem oraz pętlą for
Forum PHP.pl > Forum > PHP
mb83
Witam,
Znalazłem na tym forum pewną pętlę for która bardzo mi się przydała:
  1. <?
  2. $polacz = @mysql_connect($host,$user,$pass);
  3. if(!$polacz) {
  4.  
  5. exit('<p>Nie można polaczyc sie z baza danych</p>');
  6. }
  7.  
  8. if ( !mysql_select_db($baza) ) {
  9. echo 'Blad otwarcia bazy danych';
  10. exit (0);
  11. }
  12. echo("<table width='650' align='center'><tr>");
  13. $columns = 3;
  14. $tabq = mysql_query('SELECT ikona_kat, kategoria, COUNT(id) FROM katalog GROUP BY kategoria ORDER BY kategoria DESC') or die(mysql_error());
  15. $count_cols = mysql_num_rows($tabq);
  16. while($rek = mysql_fetch_array($tabq)){
  17. if($count_cols == 1){
  18. print("<td align='center' width='33%'><a href='kategoria.php?c=$rek[kategoria]' class='navD2'><img src='$rek[ikona_kat]' style='width:90px;height:90px;align:center;padding-right:10px;' valign='middle'><br />$rek[kategoria] <font style='color: red;'>(" . $rek['COUNT(id)'] . ")</font></a></td>\n");
  19. }
  20. else{
  21. if($i<$columns){
  22. print("<td align='center' width='33%'><a href='kategoria.php?c=$rek[kategoria]' class='navD2'><img src='$rek[ikona_kat]' style='width:90px;height:90px;align:center;padding-right:10px;' valign='middle'><br />$rek[kategoria] <font style='color: red;'>(" . $rek['COUNT(id)'] . ")</font></a></td>\n");
  23. $i++;
  24. }
  25. if($i%$columns==0){
  26. $i=0;
  27. echo("</tr><tr>");
  28. }
  29. }
  30. }
  31. echo("</tr></table>");
  32.  
  33.  
  34.  
  35.  
  36. if ( !mysql_close() ) {
  37. echo 'Nie moge zakonczyc polaczenia z baza danych';
  38. exit (0);
  39. }
  40.  
  41. ?>

Problem polega na tym, że pętla pomija jedną kategorię (tylko jedną, reszta jest ok).
Czy ta pętla ma jakiś błąd? Proszę o pomoc
darko
Próbowałeś zwiększyć liczbę kolumn w linii 13.
$columns = 4;
?
mb83
tak, nic to nie daje.
jest to kategoria ostatnia przy tym sortowaniu (Usługi Różne).
ale w momencie gdy zmienie sortowanie na odwrotne (czyli poprawne) to wtedy nie widze pierwszej kategorii (Apteki, Szpitale).

ja bym serio prosił o pomoc :-)
gdyby ktoś widział jakiś błąd to prosze o podpowiedź ...
sam niewiem co może być nie tak

rozwiązane, dzięki za pomoc:
  1.  
  2. <?
  3. $polacz = @mysql_connect($host,$user,$pass);
  4. if(!$polacz) {
  5.  
  6. exit('<p>Nie można polaczyc sie z baza danych</p>');
  7. }
  8.  
  9. if ( !mysql_select_db($baza) ) {
  10. echo 'Blad otwarcia bazy danych';
  11. exit (0);
  12. }
  13. echo("<table width='650' align='center'><tr>");
  14. $columns = 3;
  15. $tabq = mysql_query('SELECT ikona_kat, kategoria, COUNT(id) FROM katalog GROUP BY kategoria ') or die(mysql_error());
  16. $count_cols = mysql_num_rows($tabq);
  17. while($rek = mysql_fetch_array($tabq)){
  18.  
  19. if($i<=$count_cols){
  20. print("<td align='center' width='33%'><a href='kategoria.php?c=$rek[kategoria]' class='navD2'><img src='$rek[ikona_kat]' style='width:90px;height:90px;align:center;padding-right:10px;' valign='middle'><br />$rek[kategoria] <font style='color: red;'>(" . $rek['COUNT(id)'] . ")</font></a></td>\n");
  21. $i++;
  22. }
  23. if($i%$columns==0){
  24. $i=0;
  25. echo("</tr><tr>\n");
  26. }
  27. }
  28. echo("</tr></table>");
  29.  
  30.  
  31.  
  32.  
  33. if ( !mysql_close() ) {
  34. echo 'Nie moge zakonczyc polaczenia z baza danych';
  35. exit (0);
  36. }
  37.  
  38. ?>
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.