0

这是生成列表并查询数据库的 php 代码,我已经有一些 css,但我想将列表分成 6 列,每列 16 行,并在末尾添加更多 ... 链接

<?php

$show_manufacturers= true;

// for large lists of manufacturers uncomment this section

/*  if (($_GET['main_page']==FILENAME_DEFAULT and ($_GET['cPath'] == '' or    $_GET['cPath'] == 0)) or  ($request_type == 'SSL')) {
$show_manufacturers= false;
} else {
$show_manufacturers= true;
}
*/

// 设置为 true 以显示制造商图像代替名称

define('DISPLAY_MANUFACTURERS_IMAGES',false);
if ($show_manufacturers) {

// only check products if requested - this may slow down the processing of the    manufacturers sidebox
if (PRODUCTS_MANUFACTURERS_STATUS == '1') {
$manufacturer_sidebox_query = "select distinct m.manufacturers_id, m.manufacturers_name, m.manufacturers_image
                        from " . TABLE_MANUFACTURERS . " m
                        left join " . TABLE_PRODUCTS . " p on m.manufacturers_id = p.manufacturers_id
                        where m.manufacturers_id = p.manufacturers_id and p.products_status= 1
                        order by manufacturers_name";
} else {
$manufacturer_sidebox_query = "select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image
                        from " . TABLE_MANUFACTURERS . " m
                        order by manufacturers_name";
}

$manufacturer_sidebox = $db->Execute($manufacturer_sidebox_query);

if ($manufacturer_sidebox->RecordCount()>0) {
$number_of_rows = $manufacturer_sidebox->RecordCount()+1;

// 显示一个列表

$manufacturer_sidebox_array = array();
//      kuroi: commented out to avoid starting list with text scrolling list    entries such as "reset" and "please select"
//    if (!isset($_GET['manufacturers_id']) || $_GET['manufacturers_id'] == '' ) {
//      $manufacturer_sidebox_array[] = array('id' => '', 'text' => PULL_DOWN_ALL);
//    } else {
//      $manufacturer_sidebox_array[] = array('id' => '', 'text' =>  PULL_DOWN_MANUFACTURERS);
//    }

while (!$manufacturer_sidebox->EOF) {
  $manufacturer_sidebox_name = ((strlen($manufacturer_sidebox- >fields['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ?  substr($manufacturer_sidebox->fields['manufacturers_name'], 0,  MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' : $manufacturer_sidebox- >fields['manufacturers_name']);
  $manufacturer_sidebox_image = $manufacturer_sidebox->fields['manufacturers_image'];
  $manufacturer_sidebox_array[] =
    array('id' => $manufacturer_sidebox->fields['manufacturers_id'],
          'text' => DISPLAY_MANUFACTURERS_IMAGES ?
            zen_image(DIR_WS_IMAGES . $manufacturer_sidebox_image,     $manufacturer_sidebox_name) :
            $manufacturer_sidebox_name);
  $manufacturer_sidebox->MoveNext();
}

}

} // $show_manufacturers 这是我需要进行更改的地方

for ($i=0;$i<sizeof($manufacturer_sidebox_array);$i++) {
      $content = '';
  $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
  $content .= $manufacturer_sidebox_array[$i]['text'];
  $content .= '</a></li>' . "\n";
  echo $content;
}
?>
4

1 回答 1

0

如果您正在寻找纯 CSS 解决方案,您有 2 个选项:

使用 CSS3columns属性,但它只适用于现代浏览器(有些需要前缀版本)。无论如何,您都可以保证获得 6 列。您的元素将像报纸文章一样呈现(从上到下阅读)。

http://caniuse.com/#feat=multicolumn

http://jsfiddle.net/funag/

使用花车。Float 一直存在,但如果您正在查看可能会自动换行的内容,则可能需要花费更多精力来排列特定的方式。好的一面是,如果您的设备太窄而无法支持 6 列,它会优雅地换行,但对于该宽度而言,多少列是有意义的,而无需滚动。您的元素将像段落一样呈现(从左到右阅读)。

http://jsfiddle.net/funag/2/

如果你想通过 PHP 分解你的元素,你想要的是模运算符:

if ($i % 6 == 0) {
    // insert html tags to force a break
}
于 2012-12-03T00:36:09.100 回答