在自动生成的列和行中加载mysql数据

时间:2014-10-02 17:20:30

标签: php mysql sql twitter-bootstrap pdo

因此,我们的想法是创建一个网上商店,在这种情况下,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";
}
?>

1 个答案:

答案 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个项目时,我们都会完成第一行并声明一个新行。我的逻辑可能有点偏,但你得到了一般的想法。同时考虑分页,有一种方法只返回一定数量的结果,但这不是我必须亲自工作的东西。

祝你好运!