Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML] Problem z tabelą - po 5 obrazków w linii
roobik
post
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Witam! (IMG:style_emoticons/default/smile.gif)
Mam mały problem z tabelą. Otóż chcę, by wyświetlało po 5 obrazków w linii. Wszystkich rekordów jest 254. Mam gdzieś błąd w kodzie, lecz nie wiem, gdzie... Obecnie wyświetla, co prawda, po pięć obrazków, lecz obrazki te się powtarzają kilkunastokrotnie, zanim pojawi się kolejny obrazek...
  1. <?php
  2. include('config.php');
  3.  
  4.  
  5. $zap = "SELECT * FROM tabela WHERE ...";
  6. $result = mysql_query($zap);
  7. $ile = mysql_num_rows($result);
  8. echo '<table><tr><td>WSZYSTKICH ZDJĘĆ: '.$ile.'</td></tr></table>';
  9. echo '<table width=770 style="border: 1px solid #cccccc;">';
  10.  
  11. while($r = mysql_fetch_array($result)) {
  12. $id = $r['id'];
  13.  
  14. $date = $r['date'];
  15.  
  16. $text = $r['text'];
  17. $co_zmieniamy = array( "555","463");
  18. $na_co_zmieniamy = array("120","100");
  19. $text = str_replace($co_zmieniamy,$na_co_zmieniamy,$text);
  20. $opened = $r['opened'];
  21.  
  22.  
  23. $ilosc = $ile/5;
  24. $reszta=$ilosc-$ilosc%$ile;
  25. if ($reszta<0.4) {
  26. $ilosc=$ilosc-$reszta;
  27. for ($x=0;$x<$ilosc;$x++)
  28.  
  29.  
  30. {
  31. echo '<tr>';
  32.  
  33.  
  34. for ($y=0;$y<5;$y++) // pętla która tworzy kolumny
  35. {
  36. echo '<td width=152 align=center>'.$text.'<br><font style="font-family: Tahoma, Verdana, Arial; font-size: 9px;">>ID: '.$id.' | Odslon:'.$opened.'</font></td>';
  37. }
  38.  
  39. echo '</tr>';
  40.  
  41. }
  42.  
  43. }
  44.  
  45. elseif (($reszta>=0.5) AND ($reszta<=0.9)) {
  46.  
  47. $ilosc+=1-$reszta;
  48.  
  49. for ($x=0;$x<$ilosc;$x++)
  50. {
  51. echo '<tr>';
  52.  
  53. for ($y=0;$y<5;$y++)
  54. {
  55. echo '<td width=152 align=center>'.$text.'<br><font style="font-family: Tahoma, Verdana, Arial; font-size: 9px;">ID: '.$id.' | Odslon:'.$opened.'</font></td>';
  56. }
  57.  
  58. echo '</tr>';
  59.  
  60. }
  61.  
  62. }
  63.  
  64.  
  65. }
  66.  
  67.  
  68.  
  69.  
  70.  
  71. echo '</tr></table>';
  72. ?>
  73.  

Bardzo proszę ... pomóżcie...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
BaN
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

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


@peter13135 podał Ci prawie dobre rozwiązanie. Trzeba tylko wprowadzić niewielkie poprawki, aby nie wyświetlać wiersza bez komórek oraz aby w ostatnim wierszu było 5 komórek
  1. $result = mysql_query("SELECT * FROM tabela WHERE ...");
  2. $ile = mysql_num_rows($result);
  3. echo '<table><tr><td>WSZYSTKICH ZDJĘĆ: '.$ile.'</td></tr></table>';
  4. if ($ile > 0) {
  5. echo '<table width=770 style="border: 1px solid #cccccc;">';
  6. $co_zmieniamy = array("555", "463");
  7. $na_co_zmieniamy = array("120", "100");
  8. $i = 0;
  9. while ($r = mysql_fetch_array($result)) {
  10. if ($i % 5 == 0) {
  11. if ($i > 0) {
  12. echo "</tr>\n";
  13. }
  14. echo '<tr>';
  15. }
  16. echo '<td width=152 align=center>'. str_replace($co_zmieniamy, $na_co_zmieniamy, $r['text']) . '<br>
  17. <font style="...">ID: '.$r['id'] . ' | Odslon: ' . $r['opened'] .'</font></td>';
  18. ++$i;
  19. }
  20. if ($i % 5 > 0) {
  21. echo str_repeat('<td></td>', 5 - ($i % 5));
  22. }
  23. echo '</tr></table>';
  24. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 18:01