PHP MySQL-每6行插入一个div吗? [英] PHP MySQL - For every 6 rows insert a div?
问题描述
PHP:
<?php
$stmt = $db->prepare("SELECT * FROM `users`");
$stmt->execute();
$result = $stmt->get_result();
//<div class="ui stackable six cards">
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $one[] = "image div".$row["avatar"]."image div";
echo $two[] = "content div".$row["username"]."content div";
}
echo "</table>";
}
$stmt->close();
?>
HTML:
<div class="ui center aligned stackable grid container" style="padding: 4em !important;">
<div class="center aligned row">
<div class="column">
<h2 class="header">Members </h2>
</div>
</div>
<div class="ui stackable six cards">
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
</div>
<div class="ui stackable six cards">
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
<div class="ui card small">
<div class="image">
<img src="assets/img/players/.jpg">
</div>
<div class="content">
<a class="header"></a>
</div>
</div>
</div>
</div>
所以基本上我需要弄清楚的是我将如何获得
So basically what I need to figure out, is how exactly I would get
//<div class="ui stackable six cards">
每次到达6行时都要回显!这可能吗?
To echo everytime 6 rows have been reached! Is this possible?
我认为我会使用foreach循环吗?
我需要做的是从数据库中回显化身和用户名,并将其布置在我的HTML代码中,我可以做到这一点.
What I need it to do is echo the avatar and username from the database and lay it out in my HTML code, I can do that fine.
但是问题是我不知道如何使它每6行(在末尾加a)添加到此代码中
But the problem is I have no idea as to how I would make it add in this code every 6 rows (and a at the end)
P.S.我的英语说得不好,所以我真的希望你能明白我的意思!
推荐答案
请参阅我的在线注释,以了解我的答案如何工作.
See my inline comments for how my answer works.
此外,您实际上并不需要为您的案例准备的语句,您只应在SELECT
子句中包括要使用的列.
Also, you don't really need a prepared statement for your case and you should only include the columns that you intend to use in your SELECT
clause.
代码:(演示)
$resultset=[
['avatar'=>1,'username'=>'A'],
['avatar'=>2,'username'=>'B'],
['avatar'=>3,'username'=>'C'],
['avatar'=>4,'username'=>'D'],
['avatar'=>5,'username'=>'E'],
['avatar'=>6,'username'=>'F'],
['avatar'=>7,'username'=>'G']
];
if(sizeof($resultset)){ // your num rows
$counter=0; // initialize the counter
foreach($resultset as $row){ // you while loop
if($counter%6==0){ // see if counter is evenly divisible by 6
if($counter){
echo "</div>"; // if counter does not equal zero, close previous group
}
echo "<div class='ui stackable six cards'>"; // start new group
}
echo "<div class='ui card small'>";
echo "<div class='ui card small'><div class='image'><img src='".$row["avatar"]."'></div>";
echo "<div class='content'><a class='header'>Dias".$row["username"]."</a></div></div>";
echo "</div>";
++$counter; // increment counter
}
echo "</div>"; // always close the final group
}
输出:
<div class='ui stackable six cards'>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='1'></div>
<div class='content'><a class='header'>DiasA</a></div></div>
</div>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='2'></div>
<div class='content'><a class='header'>DiasB</a></div></div>
</div>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='3'></div>
<div class='content'><a class='header'>DiasC</a></div></div>
</div>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='4'></div>
<div class='content'><a class='header'>DiasD</a></div></div>
</div>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='5'></div>
<div class='content'><a class='header'>DiasE</a></div></div>
</div>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='6'></div>
<div class='content'><a class='header'>DiasF</a></div></div>
</div>
</div>
<div class='ui stackable six cards'>
<div class='ui card small'>
<div class='ui card small'><div class='image'><img src='7'></div>
<div class='content'><a class='header'>DiasG</a></div></div>
</div>
</div>
这篇关于PHP MySQL-每6行插入一个div吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!