Php 根据总计数动态循环为列而不是行
我知道这涉及到一个循环。我做了很多搜索,但还是不太清楚 我使用以下代码输出数据,每行3个项目。我真正想弄清楚的是如何让它们按列升序而不是按行升序,而是根据查询中记录的数量动态地升序,而不是定义列中的行数Php 根据总计数动态循环为列而不是行,php,loops,foreach,Php,Loops,Foreach,我知道这涉及到一个循环。我做了很多搜索,但还是不太清楚 我使用以下代码输出数据,每行3个项目。我真正想弄清楚的是如何让它们按列升序而不是按行升序,而是根据查询中记录的数量动态地升序,而不是定义列中的行数 <?php define('DB_SERVER', "xxx"); define('DB_USER', "xxx"); define('DB_PASSWORD', "xxx"); define('DB_TABLE', "xxx"); $row_count = 0; // The pro
<?php
define('DB_SERVER', "xxx");
define('DB_USER', "xxx");
define('DB_PASSWORD', "xxx");
define('DB_TABLE', "xxx");
$row_count = 0;
// The procedural way
$mysqli = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_TABLE);
$mysqli->set_charset("utf8");
$mysqli->query("SET NAMES 'utf8'");
if (mysqli_connect_errno($mysqli)) {
trigger_error('Database connection failed: ' . mysqli_connect_error(), E_USER_ERROR);
}
$query = "
SELECT lvm.luchtvaartmaatschappij, COUNT(*) AS CountLVMPhotos
FROM tbl_photos p
LEFT JOIN tbl_luchtvaartmaatschappij lvm
ON p.img_lvm = lvm.IATACode
WHERE p.img_creator IN ('Daniël E. Cronk','Daniel E. Cronk')
GROUP BY lvm.luchtvaartmaatschappij
ORDER BY lvm.luchtvaartmaatschappij ASC ";
$result = mysqli_query($mysqli, $query) or trigger_error("Query Failed! SQL: $query - Error: ". mysqli_error($mysqli), E_USER_ERROR);
echo "
<table id='fotosBij' class='tablesorter-dropbox table-responsive ui-table-reflow'>";
echo "<tbody>";
if($result) {
while($row = mysqli_fetch_assoc($result)) {
$items_in_row = 3 ;
$index = 0 ;
echo '<tr >';
while($row = mysqli_fetch_assoc($result)){
$index++ ;
echo "<td width='250px' valign='top'>" . $row['luchtvaartmaatschappij'] . "</td>";
echo "<td width='50px' valign='top'>" . $row['CountLVMPhotos'] . "</td>";
echo "<td width='80px'> </td>";
if ($index%$items_in_row == 0){
echo "</tr>";
}
}
echo "</tbody>";
echo "</table>";
}
}
mysqli_close($mysqli);
?>
如果我正确理解您的需求,这将实现:
if($result) {
$row1html = "<tr>";
$row2html = "<tr>";
while($row = mysqli_fetch_assoc($result)) {
$row1html .= "<td width='250px' valign='top'>".
$row['luchtvaartmaatschappij'] ."</td>";
$row2html .= "<td width='50px' valign='top'>".
$row['CountLVMPhotos'] . "</td>";
}
$row1html = "</tr>";
$row2html = "</tr>";
echo $row1html . $row2html;
}
if($result){
$row1html=“”;
$row2html=“”;
while($row=mysqli\u fetch\u assoc($result)){
$row1html.=''。
$row['Luchtvaartmaatschapij']。“”;
$row2html.=“”。
$row['CountLVMPhotos'];
}
$row1html=“”;
$row2html=“”;
echo$row1html.$row2html;
}
也许有更优雅的方式,但这应该是可行的
如果你有很多数据,这个表会变得很宽,所以希望你有一个这样的设计