Цикл как столбец вместо строк динамически на основе общего количества - PullRequest
0 голосов
/ 04 июня 2018

Я знаю, что это включает в себя цикл.Я сделал несколько поисков, но не могу понять это.

Я использую следующий код для вывода данных по 3 элемента в строке.То, что я действительно хотел бы выяснить, как это сделать, это заставить их идти по возрастанию по столбцам, а не по строкам, но динамически, в зависимости от количества записей в запросе, вместо определения количества строк в столбце.

<?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'>&nbsp;</td>";

if ($index%$items_in_row == 0){
echo "</tr>"; 

  }
    }
echo "</tbody>";
echo "</table>";
    }
    }

mysqli_close($mysqli);

?> 

1 Ответ

0 голосов
/ 05 июня 2018

Если я правильно понимаю, что вы хотите, это сработает:

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

Возможно, есть более элегантные способы, но это должно сработать.

Если у вас много данных,хотя этот стол станет довольно широким, так что, надеюсь, у вас есть дизайн для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...