我想列一个清单,并在双清单中显示


I want make a list and and show in double list

我想制作一个从数据库获取数据的列表。我想把列表显示为double,意思是一列中的一半数据和半秒的列。我使用的是PHP MySQL和HTML。

以下是总体思路,但不需要全部为您编写。循环浏览你的结果,当你达到一半时,结束当前列表,开始新的列表。

你可能需要绕过中点,但你应该能够利用它来做你想做的事。使用CSS可以随心所欲地定位列表。不过下次第一次发布一些代码。

$query = YOUR_QUERY
$count = 0; // Set a counter
$total = mysql_num_rows($query); // Get the total
echo '<ul>';
while ($row = mysql_fetch_array($query)) { // Loop through the query
    echo '<li>'.$row['something'].'</li>'; // Output your li
    if ($count == ($total / 2) { // If you reach half way, start a new list
        echo '</ul><ul>';
    }
    $count++;
}
echo '</ul>';

您需要对记录进行计数,然后计算每列需要多少行:

$result = mysql_query("SELECT * FROM `my_table` WHERE `foo` = 'bar'");
$num_records = mysql_num_rows($result);
$num_columns = 2;
$rows_per_col = ceil($num_records / $num_columns);
$records = array();
while($row = mysql_fetch_array($result))
{
    $records[] = $row;
}
// Now get the columns in two arrays:
$col1 = array_slice($records, 0, ($rows_per_col - 1));
$col2 = array_slice($records, $rows_per_col);
// Now loop over the data:
echo '<div class="col">';
foreach($col1 as $row) 
{
    echo "'n't", '<span class="row">', $row, '</span>';
}
echo '</div>';
echo '<div class="col">';
foreach($col2 as $row) 
{
    echo "'n't", '<span class="row">', $row, '</span>';
}
echo '</div>';

然后你需要添加一些CSS来向左浮动列,并设置它们的宽度:

div.col {
    float: left;
    padding: 2%;
    width: 46%;
}
    div.col span.row {
        display: block;
        line-height: 20px;
    }

假设$returned_data是一个关联数组,

   echo '<table>';
    foreach($returned_data as $k => $v)
    {
      echo '<tr>';
      echo    '<td>'.$k.'</td><td>'.$v.'</td>';
      echo '</tr>';
    }
    echo '</table>';

尝试为此使用css

.list-half {
    display: inline-block;
    float: left; /* to pretend whitespace breaks */
    width: 50%;
}

输出:

<ul>
<?php foreach ( $data as $value ) { ?>
    <li class="list-half"><?php echo $value ?></li>
<?php } ?>
</ul>

不要忘记清除floats