Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Dzielenie na kolumny
-Tomek67-
post
Post #1





Goście







Posiadam funkcje listowania artykułów w swoim portalu i przedstawia się ona następująco
  1. <?php
  2. function list_arts($topic, $limit, $page) {
  3.  
  4. global $art_tbl, $PHP_SELF, $arts, $art_sort, $uart_sort;
  5.  
  6. if($uart_sort=='') $sort = $art_sort; else $sort = $uart_sort;
  7.  
  8.  
  9. echo '<br><div align="center" class="uni_01">sortuj według: <b>tytułu</b> <a title="alfabetycznie" href="articles.php?topic='.$topic.'&sortby=title-ASC"><img src="images/s_down.gif" border="0" align="absmiddle"></a><a
  10. href="articles.php?topic='.$topic.'&sortby=title-DESC"><img src="images/s_up.gif" border="0" align="absmiddle"></a>
  11. | <b>daty</b> <a title="najstarsze u góry" href="articles.php?topic='.$topic.'&sortby=date-ASC"><img src="images/s_down.gif" border="0" align="absmiddle"></a><a
  12. href="articles.php?topic='.$topic.'&sortby=date-DESC"><img src="images/s_up.gif" border="0" align="absmiddle"></a>
  13. | <b>popularności</b> <a title="najpopularniejsze u góry" href="articles.php?topic='.$topic.'&sortby=opened-DESC"><img src="images/s_down.gif" border="0" align="absmiddle"></a><a
  14. href="articles.php?topic='.$topic.'&sortby=opened-ASC"><img src="images/s_up.gif" border="0" align="absmiddle"></a>
  15. <br><br>
  16. <tr><td>';
  17.  
  18. $query = "SELECT * FROM $art_tbl WHERE topic='$topic' ORDER BY $sort";
  19. $result = mysql_query($query);
  20. $ile = mysql_num_rows($result);
  21.  
  22. if($ile<>0) {
  23. $znk = $page * $limit;
  24. mysql_data_seek($result, $znk);
  25. }
  26.  
  27. $aaa = 0;
  28. while($r = mysql_fetch_array($result)) {
  29.  
  30. $id = $r['id'];
  31. $title = $r['title'];
  32. $text = $r['discript'];
  33. $date = $r['date'];
  34. $author = $r['author'];
  35. $comment_num = $r['comments'];
  36. $opened = $r['opened'];
  37.  
  38. $text = stripslashes($text);
  39. $title = stripslashes($title);
  40.  
  41.  
  42. $title = '<a href="articles.php?id='.$id.'" title="dodany: '.$date.'" class="t_art">'.$title.'</a></b>';
  43. $print = 'print.php?what=article&id='.$id;
  44. $more = 'articles.php?id='.$id;
  45.  
  46. if(is_login()=='yes') {
  47. $link_a = '<a href="admin.php?op=art&cmd=edit&id='.$id.'&goto='.basename($PHP_SELF).'" title="edit" class="t_art">E</a>';
  48. $link_b = '<a href="admin.php?op=art&cmd=del&id='.$id.'&goto='.basename($PHP_SELF).'" title="delete" class="t_art">D</a>';
  49. $title = $title.' <b>ˇˇˇ</b> (<b> '.$link_a.'</b> | <b>'.$link_b.' </b>)';
  50. }
  51.  
  52. $comment = 'comment.php?what=article&id='.$id;
  53.  
  54. art_theme($title, $text, $author, $date, $comment, $comment_num, $print, $more, $opened);
  55.  
  56. $aaa++;
  57. if($aaa==$limit) break;
  58.  
  59. }
  60.  
  61. $ile = mysql_num_rows($result);
  62. if($ile<>0) {
  63. $arts= $ile;
  64. $ile = $ile / $limit;
  65. $ile = ceil($ile);
  66.  
  67. $bbb = 0;
  68. while($bbb<>$ile) {
  69.  
  70. $ccc = $bbb + 1;
  71. if($page==$bbb) {
  72. $re = $re.'[<b>'.$ccc.'</b>] ';
  73. } else {
  74. $re = $re.'[<a href="'.$PHP_SELF.'?page='.$bbb.'&topic='.$topic.'">'.$ccc.'</a>] ';
  75. }
  76.  
  77. $bbb++;
  78. }
  79. } else {
  80. $re = $re.'[<b>1</b>] ';
  81. }
  82. $arts = (int) $arts;
  83. return $re;
  84. }
  85. ?>


korzysta ona przy wyświetlaniu z funkcji themsa
  1. <?php
  2. function art_theme($title, $text, $poster, $date, $comment, $comment_num, $print, $more, $opened)
  3. {
  4.    global $color;
  5.  
  6.    $more = '<a href="'.$more.'"><font class="title">zagraj</font></a><br>';
  7.  
  8.    echo '
  9.    
  10.    <font class="title"><center><b>'.$title.'</b></center></font>
  11.    
  12.    <center><img src="'.$text.'" width="120" height="120"></center>
  13.    ';
  14.  
  15.    if($mod<>'err')
  16.    {
  17.        echo '
  18.        <center><font class="title">grano: '.$opened.' | '.$more.'</font></center><br>
  19.        ';
  20.    }
  21.  
  22.    echo '
  23.    
  24.    
  25.    
  26.    ';
  27.  
  28. }
  29. ?>


i tutaj nasuwa sie problem bo chce wyświetlić wyniki w 3 kolumnach
czyli w taki sposób
|x1| |x4| |x7|
|x2| |x5| |x8|
|x3| |x6| |x9|

może też być w taki
|x1| |x4| |x7|
|x2| |x5| |x8|
|x3| |x6| |x9|

ale żeby było w 3 kolumnach
czyli żeby po trzech wywołaniach funkcji art_theme te 3 wyniki zostawiło w jednej kolumnie a następne wyświetlały sie w następnej kolumnie
ktoś mi podpowiedział że takie dzielenie można uzyskać za pomocą funkcji
  1. <?php
  2. echo '<table><tr>';
  3. $x=0;
  4. while($r= wyniki z bazy){
  5. if($x++ % liczba kolumn == 1)echo '</tr><tr>';
  6. echo '<td>wynik</td>';
  7. }
  8. echo '</tr></table>'
  9. ?>

ale nie mam pojęcia jak to dostosować... prosze o pomoc
Go to the top of the page
+Quote Post
michalkjp
post
Post #2





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

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


  1. <?php
  2. for ($i = 1; $i < 10; $i++) {
  3.    if (($i == 1) or ($i == 4) or ($i == 7)) {
  4.        print("<tr>");
  5.    }
  6.  
  7.   Tu wstaw to, co chcesz mieć w komórce tabeli
  8.  
  9.    if (($i == 3) or ($i == 6)) {
  10.        print("</tr>");
  11.    }
  12. }
  13. print("</tr>");
  14. ?>
Go to the top of the page
+Quote Post
--TomekG--
post
Post #3





Goście







ten skrypt powoduje że każdy artykuł w liście wyświetla sie 9 razy ale na kolumny nie dzieli
Go to the top of the page
+Quote Post
michalkjp
post
Post #4





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

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


Cytat(-TomekG- @ 20.10.2008, 22:33:45 ) *
ten skrypt powoduje że każdy artykuł w liście wyświetla sie 9 razy ale na kolumny nie dzieli

Ten skrypt renderuje komórki do tabeli – co w te komórki wsadzisz to już Twoja sprawa ;)

Przed wywołaniem tego kodu możesz jeszcze dodać <table> i <tbody> (a później zamknąć znaczniki), bo o tym zapomniałem.
Go to the top of the page
+Quote Post
-Tomek67-
post
Post #5





Goście







a może mi ktoś podpowiedzieć jak to dostosować do powyższych funkcji... bo sobie nie daje rady
Go to the top of the page
+Quote Post
michalkjp
post
Post #6





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

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


Cytat(Tomek67 @ 20.10.2008, 23:17:36 ) *
a może mi ktoś podpowiedzieć jak to dostosować do powyższych funkcji... bo sobie nie daje rady


Jeśli dobrze zrozumiałem, to w tej pętli while($r = mysql_fetch_array($result)) wypisujesz sobie artykuł, więc coś takiego powinno chyba działać, ale nie testowałem.

  1. <?php
  2. $i = 1
  3.  
  4. print("<table><tbody>");
  5.  
  6. while($r = mysql_fetch_array($result)) {
  7.    if (($i == 1) or ($i == 4) or ($i == 7)) {
  8.        print("<tr>");
  9.    }
  10.    print("<td>");
  11.    $id = $r['id'];
  12.    $title = $r['title'];
  13.    $text = $r['discript'];
  14.    $date = $r['date'];
  15.    $author = $r['author'];
  16.    $comment_num = $r['comments'];
  17.    $opened = $r['opened'];
  18.  
  19.    $text = stripslashes($text);
  20.    $title = stripslashes($title);
  21.  
  22.  
  23.    $title = '<a href="articles.php?id='.$id.'" title="dodany: '.$date.'" class="t_art">'.$title.'</a></b>';
  24.    $print = 'print.php?what=article&id='.$id;
  25.    $more = 'articles.php?id='.$id;
  26.  
  27.    if(is_login()=='yes') {
  28.        $link_a = '<a href="admin.php?op=art&cmd=edit&id='.$id.'&goto='.basename($PHP_SELF).'" title="edit" class="t_art">E</a>';
  29.        $link_b = '<a href="admin.php?op=art&cmd=del&id='.$id.'&goto='.basename($PHP_SELF).'" title="delete" class="t_art">D</a>';
  30.        $title = $title.' <b>ˇˇˇ</b> (<b> '.$link_a.'</b> | <b>'.$link_b.' </b>)';
  31.    }
  32.  
  33.    $comment = 'comment.php?what=article&id='.$id;
  34.  
  35.    art_theme($title, $text, $author, $date, $comment, $comment_num, $print, $more, $opened);
  36.  
  37.    $aaa++;
  38.    print("</td>");
  39.    if (($i == 3) or ($i == 6)) {
  40.        print("</tr>");
  41.    }
  42.    $i++;
  43.    if($aaa==$limit)
  44.        break;
  45. }
  46. print("</tr>");
  47. print("</tbody></table>");
  48. ?>
Go to the top of the page
+Quote Post
-Tomek67-
post
Post #7





Goście







Dzięki Twoim wskazówkom natrafiłem na rozwiązanie problemu
dodałem do kodu:
  1. <?php
  2. $aaa++ ;
  3. if(($aaa==3) or ($aaa==6))  echo '</tr><tr>';
  4. if($aaa==$limit) break;
  5. ?>

i śmiga ładnie.... dzięki i pozdro (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
michalkjp
post
Post #8





Grupa: Zarejestrowani
Postów: 182
Pomógł: 14
Dołączył: 20.09.2008

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


Cytat(Tomek67 @ 21.10.2008, 00:14:59 ) *
Dzięki Twoim wskazówkom natrafiłem na rozwiązanie problemu
dodałem do kodu:
  1. <?php
  2. $aaa++ ;
  3. if(($aaa==3) or ($aaa==6))  echo '';
  4. if($aaa==$limit) break;
  5. ?>

i śmiga ładnie.... dzięki i pozdro (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ciekawe dlaczego – przy tej nieczytelności kodu nie potrafię zgadnąć – zauważyłem <tr><td> na końcu pierwszego echo, ale nie wiem jak to będzie wyglądało w praktyce. Zgaduje, że nie waliduje się jako poprawny html
Go to the top of the page
+Quote Post
StevDefs
post
Post #9





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.08.2019

Ostrzeżenie: (10%)
X----


Lasting Longer In Bed Exercises Priligy Prix Prednisone Without Prescription viagra Venta De Cialis Generico En Espana Buy Synthroid From Mexico Buy Propecia In Canada

Viagra Pro Generic viagra Best Deals.On Viagra

Venta Cialis Generico Espana Cialis In Pune viagra Amoxicillin Clavulanate Rash Expired Amoxicillin Pills

Cheapeast Amoxicilina Medication No Physician Approval generic levitra 20mg Generic Levitra Free Shipping Acheter Du Amoxil Generique Ventolin With Viagra
Go to the top of the page
+Quote Post

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 - 22:31