【问题标题】:I want make a list and and show in double list [closed]我想列出一个列表并显示在双重列表中[关闭]
【发布时间】:2012-07-27 09:34:34
【问题描述】:

我想制作一个从数据库中获取数据的列表。我想将列表显示为双倍,表示一列中的一半数据和第二列中的一半数据。我正在使用 PHP MySQL 和 HTML。

【问题讨论】:

  • 哇?我想我的大脑今天一定是被热死了,因为这对我来说毫无意义。
  • 太好了!我以你为荣!严重:你有什么问题? :-) 我在您的帖子中没有发现任何问题...
  • SO 不是自动代码生成器!!!

标签: php mysql html


【解决方案1】:

这里是一般的想法,而不是为你写的。循环遍历您的结果,当您点击一半时结束当前列表并开始一个新列表。

您可能需要绕过中间点,但您应该能够使用它来做您想做的事情。使用 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>';

【讨论】:

  • +1 表示你破坏它的方式:) 我正在考虑使用 "limit 0,".$count/2"limit ".$count/2.",".$count 。不过你的要酷得多;)
【解决方案2】:

你需要统计记录,然后计算每列需要多少行:

$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;
    }

【讨论】:

  • 您的代码非常有用....
【解决方案3】:

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

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

【讨论】:

  • 他只需要不同列中的数据,这意味着只需在不同的&lt;td&gt; 中回显结果我猜
  • 啊,我现在明白他了,虽然我认为他甚至不想要键值,但我认为他实际上只想要两列包含数据,即前半部分数据在一列中,第二列一半的数据在第二列。虽然大声笑我可能仍然是错的。
  • @JonTaylor 不,我支持你的回答;)
【解决方案4】:

尝试为此使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多