因此,我们的想法是创建一个网上商店,在这种情况下,T恤的信息将被加载到不同的列和行中。 我希望行包含4列。
我正在使用PDO方法从mysql请求数据(是的..我使用了pdo的全局变量,已经研究过了。) 我正在使用Bootstrap来创建行和列。
到目前为止,我已经能够创建一个加载数据并将其存储到列中的代码。但我的知识似乎真的在这里结束了。我希望有人能给我看一个方法,
加载4件T恤的数据,将其存储在这些列中 然后加载接下来的4件T恤的数据,再将它放在一个新的行中,再加上4列。
到目前为止我的代码:
PDO加载数据
<?php
global $pdo;
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // throw all errors.
try
{
$stmt = $pdo->prepare("SELECT * FROM products"); // form the sql statement.
$results = array(); // initialise an array for the results.
if ($stmt->execute()) { // execute the call to the db.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{ // loop through the resultset.
$results[] = $row; // load each row into the array.
}
}
} catch (PDOException $e)
{
echo $e->getMessage(); // print any errors.
}
?>
将它放入一列和一行:
foreach ($results as $result)
{ // loop through the resultset and print each row.
echo "<div class=\"row\">\n";
echo "<div class=\"col-xs-3\" style=\"background-color:lavender;\">\n";
echo "<a href=\"article.php?id=".$result['ID']."\">".$result['productname']."</a>\n";
echo "</div>\n";
echo "</div>\n";
}
?>
答案 0 :(得分:0)
您可以随时跳过这些行:
foreach ($results as $result) {
echo "<div class=\"col-xs-3\" style=\"background-color:lavender;\">\n";
echo "<a href=\"article.php?id=".$result['ID']."\">".$result['productname']."</a>\n";
echo "</div>\n";
}
?>
这样,它总是会打印出4列,并且当它不能再适合任何列时会自动溢出到下一行。或者,使用计数器确定何时回显一行:
$item = 1;
echo "<div class=\"row\">\n";
foreach ($results as $result) {
echo "<div class=\"col-xs-3\" style=\"background-color:lavender;\">\n";
echo "<a href=\"article.php?id=".$result['ID']."\">".$result['productname']."</a>\n";
echo "</div>\n";
if($item % 4 == 1) { // i.e. Count is divisible by 4
echo "</div><div class=\"row\">\n";
}
$item++;
}
?>
请注意,第一行是在循环外声明的,每次我们点击4个项目时,我们都会完成第一行并声明一个新行。我的逻辑可能有点偏,但你得到了一般的想法。同时考虑分页,有一种方法只返回一定数量的结果,但这不是我必须亲自工作的东西。
祝你好运!