2014-10-02 79 views
0

所以這個想法是創建一個網上商店,在這種情況下,T恤的信息將被加載到不同的列和行中。 我想要行由4列組成。在自動生成的列和行中加載mysql數據

我正在使用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

你總是可以跳過行:

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"; 
} 
?> 

這樣,我t將總是打印出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個項目的時候,我們玩完了第一排,並宣佈了新的一。我的邏輯可能有點偏離,但你有一個總體想法。同樣看看分頁,有一種方法可以只返回一定數量的結果,但這不是我必須親自處理的。

祝你好運!

+0

好的感謝您的快速響應!將研究這兩種方法,看看什麼效果最好! – 2014-10-05 11:34:29

相關問題