php - Displaying Rows of HTML Elements in Vertical Rows -


i want show list of categories in virtuemart webshop vertically sorted same way shown in demonstration: http://www.inkplant.com/code/mysql-vertical-sort.php

so borrowed code:

    <?php $cols = 4; //number of columns, can set positive integer $values = array(); $result = mysql_query("select * states order name"); $numrows = mysql_num_rows($result); $rows_per_col = ceil($numrows / $cols); ($c=1;$c<=$cols;$c++) { $values['col_'.$c] = array(); } $c = 1; $r = 1; while ($row = mysql_fetch_assoc($result)) {     $values['col_'.$c][$r] = stripslashes($row['name']);     if ($r == $rows_per_col) { $c++; $r = 1; } else { $r++; } } echo "<table>" ; ($r=1;$r<=$rows_per_col;$r++) {     echo "<tr>" ;     ($c=1;$c<=$cols;$c++) { echo "<td>".$values['col_'.$c][$r]."</td>" ; }     echo "</tr>" ; } echo "</table>" ; unset($values); ?> 

i tried modify in virtuemart category template file result:

<?php $cols = 3; //number of columns, can set positive integer $values = array();  $numrows = $precounterdigit;  $rows_per_col = ceil($numrows / $cols); ($c=1;$c<=$cols;$c++) { $values['col_'.$c] = array(); } $c = 1; $r = 1; foreach ( $this->category->children $category ) { $catname = $category->category_name; $caturl = jroute::_ ( 'index.php?option=com_virtuemart&view=category&virtuemart_category_id=' . $category->virtuemart_category_id ); $values['col_'.$c][$r] = '<div class="category floatleft'.$category_cellwidth.'"> <div class="spacer"><h2>                             <a href="'.$caturl.'" title="'.$catname.'">                             '.$catname.'<br /></a></h2>                                     </div></div>';        if ($r == $rows_per_col) { $c++; $r = 1; } else { $r++; } } echo '<div class="tablediv">' ; ($r=1;$r<=$rows_per_col;$r++) {     echo '<div class="row">' ;     ($c=1;$c<=$cols;$c++) { echo $values['col_'.$c][$r]; }     echo '</div>' ; } echo '</div>' ; unset($values); ?> 

it shows in category view if number of categories dividable 3 or dividable 3 -1. meaning shows correctly if there 3, 5, 6, 8, 9, 11, 12 etc... categories on page.

if number of categories equals number dividable 3 +1 shows in weird way..

here example of how shows when there 9 categories:

cat1 | cat4 | cat7
cat2 | cat5 | cat8
cat3 | cat6 | cat9

here example of how shows when there 8 categories:

cat1 | cat4 | cat7
cat2 | cat5 | cat8
cat3 | cat6 |


, here example of how shows when there 7 categories:

cat1 | cat4 | cat7
cat2 | cat5 | cat3
cat6 |

i cannot figure 1 out, hope can me little bit here..

just try this, sure can change cols , rows.

<?php //user210424  $cols = 3; $rows = 3; $j = 0; $array = array("one","two","three","four","five","six","seven","eight","nine");  for($i=1; $i<=$cols; $i++) { echo "<div class='col' style='float:left;'>";     for($j; $j<$rows*$i; $j++) {         echo "<div class='row'>".$array[$j]."</div>";     } echo "</div>"; } ?> 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -