Отображать сообщения в разных столбцах [дублировать]
На этот вопрос уже есть ответ здесь:
Ниже приведен код, который получает блоги из базы данных и отображает их в одном столбце на экране, я хочу, чтобы блоги отображались в нескольких столбцах, их может быть три, в каждом столбце отображается 10 блогов, упорядоченных по их идентификатор, так как это сделать. Если здесь слишком долго отвечать, возможно, мне поможет упоминание любого простого в использовании метода.
Вот как я называю сообщения из бд:
$query = ("SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN
categories ON categories.category_id=blogs.category_id ORDER BY blogs_id desc LIMIT 10");
foreach($db->query($query)as $row){
$blogs_id = $row['blogs_id'];
$title = $row['title'];
$body = $row['body'];
$posted_by = $row['posted_by'];
}
echo "<h2>$title</h2>
<p>$body</p>";
1 answers
Используя приведенный ниже код, довольно легко изменить количество столбцов в любое удобное для вас время.
<tr>
<?php do { //horizontal looper?>
<td><div><?php echo $row['title']; ?></div>
<div><?php echo $row['body']; ?></div>
<div style="height:20px;"></div></td>
<?php
$row = $query->fetch(PDO::FETCH_ASSOC);
if (!isset($nested_List)) {
$nested_List= 1;
}
if (isset($row) && is_array($row) && $nested_List++%3==0) {
echo "</tr><tr>";
}
} while ($row); //end horizontal looper
?>
Это даст вам три столбца.
Обратите внимание, что строка вашей таблицы начинается вне цикла. Затем эта строка echo "</tr><tr>";
завершает строку таблицы и начинает новую каждый раз, когда достигнуто количество желаемых столбцов. В приведенном выше коде это 3.
Чтобы изменить количество столбцов, просто измените $nested_List++%3==0
на $nested_List++%5==0
, и у вас будет 5 столбцов.
Счастливое кодирование !
РЕДАКТИРОВАТЬ
Разместите что-то похожее на это в вверху вашей страницы выше <doctype><html><head>
Все вместе это должно выглядеть примерно так...
<?php
$host = 'localhost'; $db = 'database_name'; $user = 'database_user'; $pw = 'database_password';
$conn = new PDO('mysql:host='.$host.';dbname='.$db.';charset=utf8', $user, $pw);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT blogs_id, title, body, posted_by, category FROM blogs INNER JOIN categories ON categories.category_id=blogs.category_id ORDER BY blogs_id desc LIMIT 10";
$query = $conn->prepare($sql);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$totalRows = $query->rowCount();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<table cellpadding="5" cellspacing="0" border="0">
<tr>
<?php do { //horizontal looper?>
<td><div><?php echo $row['title']; ?></div>
<div><?php echo $row['body']; ?></div>
<div style="height:20px;"></div></td>
<?php
$row = $query->fetch(PDO::FETCH_ASSOC);
if (!isset($nested_List)) {
$nested_List= 1;
}
if (isset($row) && is_array($row) && $nested_List++%3==0) {
echo "</tr><tr>";
}
} while ($row); //end horizontal looper
?>
</table>
</body>
</html>
Конечно, вы можете "включить" или "потребовать" свой файл подключения обычным способом и изменить $conn
, чтобы он соответствовал вашему коду, если это необходимо.