奇数の偶数の方法の例を見ましたが、アルファベット順の項目ごとに左から右に交互に並べずに、列全体から次の列に順序を流したいです。これはできますか?
これがクエリです
$db = JFactory::getDbo();
$db->setQuery('SELECT title, introtext
FROM #__content
WHERE introtext LIKE "%Still Airing%"
ORDER BY title ASC');
$row = $db->loadAssocList();
2で割ってみましたが、どのように各列をhtmlに表示させるのですか?
$half = count($row) / 2;
私が考えていたのは、変数を使用して各列(またはテーブルのtds)にその数のアイテムをリストすることができるということですが、構文がわからないか、正しく実行しているかどうかはわかりません。 $ halfアイテムをリストし、残りを次の列にリストします。
イントロテキストは単なるフィルターです。タイトルのみを表示します。
array_chunk() を使用して行数を半分に切り上げた後、切り上げて、2番目の列の行数が最初の列の行数と同じかそれより1つ少なくなるようにします。
HTMLテーブルは、「表形式」のデータを表示するためにのみ使用してください。 2つの非表形式リストを作成しているので、他のタグを使用する方が適切です(いくつかの異なるタグが適切な場合があります)。
デモ(リッチテキストの結果を確認するには、スニペットをphptester.netにコピーして貼り付けてください)
_// $resultset = $db->loadAssocList(); ...I am supplying my own sample data
$resultset = [
['title' => 'A', 'introtext' => 'A intro'],
['title' => 'B', 'introtext' => 'B intro'],
['title' => 'C', 'introtext' => 'C intro'],
['title' => 'D', 'introtext' => 'D intro'],
['title' => 'E', 'introtext' => 'E intro']
];
$halves = array_chunk($resultset, ceil(count($resultset) / 2));
foreach ($halves as $half) {
echo '<div style="display: inline-block; vertical-align: top; border: solid 1px black; padding: 2px;">';
foreach ($half as $row) {
echo '<div style="border: 1px solid blue; padding: 2px;">';
echo '<p style="background-color: green;">' , $row['title'] , '</p>';
echo '<p style="background-color: yellow;">' , $row['introtext'] , '</p>';
echo '</div>';
}
echo '</div>';
}
_
出力:
コメントを少しやり取りした後、title
の値のみを目的の配置で2つの列として出力する直接的な方法を次に示します。
_$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select("title")
->from("#__content")
->where("introtext LIKE '%Still Airing%'")
->order("title");
// echo $query->dump(); // uncomment if you want to see the rendered query
$db->setQuery($query);
$resultset = $db->loadColumn();
$halves = array_chunk($resultset, ceil(count($resultset) / 2));
foreach ($halves as $half) {
echo '<div style="display: inline-block; vertical-align: top; border: solid 1px black; padding: 2px;">';
echo '<div>' , implode('</div><div>', $half) , '</div>';
echo '</div>';
}
_
Joomlaのクエリ構築メソッドを使用すると、$query->dump()
を出力して問題を診断するのが簡単になります。