Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Daten in 3 Spalten aufteilen

Sie könnten dies mit dem Modulo-Operator tun, aber es ist tatsächlich nur mit CSS möglich.

Verwendung von display: inline-block , können Sie einen guten Säuleneffekt erzielen. Sehen Sie sich dieses JSFiddle hier an . Ich benutze JavaScript nur, weil ich faul bin; der <div> list würde in Ihrem Fall von PHP generiert werden. Wenn Sie sie auf eine bestimmte Breite beschränken möchten, legen Sie sie einfach in einen Container <div> mit fester Breite.

Ich habe eine Lösung mit Tabellen gefunden, was Sie wirklich tun sollten (Sie haben keine speziellen Anwendungsfälle angegeben). Der Code ist unten, sowie eine funktionierende Demo hier .

$columns = 4;       // The number of columns you want.

echo "<table>";     // Open the table

// Main printing loop. change `30` to however many pieces of data you have
for($i = 0; $i < 30; $i++)
{
    // If we've reached the end of a row, close it and start another
    if(!($i % $columns))
    {
        if($i > 0)
        {
            echo "</tr>";       // Close the row above this if it's not the first row
        }

        echo "<tr>";    // Start a new row
    }

    echo "<td>Cell</td>";       // Add a cell and your content
}

// Close the last row, and the table
echo "</tr>
</table>";

Und zum Schluss haben wir unser spaltenzentriertes Layout, diesmal zurück zu div s. Hier gibt es etwas CSS; Dies sollte in einer separaten Datei abgelegt werden, nicht inline gelassen .

<?php
$rows = 10;     // The number of columns you want.
$numItems = 30;     // Number of rows in each column

// Open the first div. PLEASE put the CSS in a .css file; inline used for brevity
echo "<div style=\"width: 150px; display: inline-block\">";

// Main printing loop.
for($i = 0; $i < $numItems; $i++)
{
    // If we've reached our last row, move over to a new div
    if(!($i % $rows) && $i > 0)
    {
        echo "</div><div style=\"width: 150px; display: inline-block\">";
    }

    echo "<div>Cell $i</div>";      // Add a cell and your content
}

// Close the last div
echo "</div>";
?>