Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Dzielenie na kolumny
Forum PHP.pl > Forum > Przedszkole
Tomek67
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
michalkjp
  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. ?>
-TomekG-
ten skrypt powoduje że każdy artykuł w liście wyświetla sie 9 razy ale na kolumny nie dzieli
michalkjp
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.
Tomek67
a może mi ktoś podpowiedzieć jak to dostosować do powyższych funkcji... bo sobie nie daje rady
michalkjp
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. ?>
Tomek67
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 winksmiley.jpg
michalkjp
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 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
StevDefs
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
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.