2012-02-08 63 views
1

我想顯示某個表的數據超過3列,並希望它繼續3行結果後的下一行,所以如果有30個結果應該有10行3行列,如果有15個結果應該有5行3列等多列而不是行 - PDO語句

但是我只能找到關於如何使用「普通的sql語句」做到這一點的例子,並找不到PDO中可以做同樣的事情,不幸的是混合正常的SQL和PDO不能很好地工作。

那麼這裏是我的代碼:

$result = getdatanames($db, $_GET['id']); 
foreach ($result as $row) { 
    echo '<tr>'; 
    echo '<td style="width: 20%; text-align:right;"><a href="/?p=USERS.profile&amp;id='.$row->idd.'">'.$row->name.'</a></td>'; 
    echo '<td style="width: 13%;"><span style="font-variant:small-caps;font-size:10px;position:relative;top:-5px;color:#C11B17;">'.$row->last_name.'</span></td>'; 
    echo '</tr>'; 
} 

但是我知道這是怎麼回事每行顯示(這兩個名字和姓),但我怎樣才能讓它在每行3條記錄顯示,以便工作(名字和姓氏)?

又名:

Name Last name - Name Last name - Name Last name 
    Name Last name - Name Last name - Name Last name 
    Name Last name - Name Last name - (Empty auto fill) 

回答

2

這什麼都沒有做與PDOmysql,你只需要添加一個計數器,只加</tr><tr>塊時,你可以通過3.將您的櫃檯或加列變量並在它命中3後將其設置爲1.

也許在循環後面添加幾列以完成最後一行。

與列計數器:

$column = 0; 
echo '<tr>'; 
foreach ($result as $row) 
{ 
    $column++; 
    echo '<td style="width: 20%; text-align:right;"><a href="/?p=USERS.profile&amp;id='.$row->idd.'">'.$row->name.'</a></td>'; 
    echo '<td style="width: 13%;"><span style="font-variant:small-caps;font-size:10px;position:relative;top:-5px;color:#C11B17;">'.$row->last_name.'</span></td>'; 
    if ($column == 3) 
    { 
    $column = 0; 
    echo '</tr><tr>'; 
    } 
} 
echo '</tr>'; 
+0

你好,我知道它有沒有,但櫃檯的方式,我可以在教程在網上找到了在「普通/正常」的SQL,這不很好地工作因此,PDO爲什麼將他們刪除,我無法讓他們工作。 我知道目前的一段代碼我不會按照我想要的方式工作,必須改變,我只是展示它現在是怎麼樣的,以及我希望它如何成爲 – 2012-02-08 13:21:43

+0

@Bauke Van der Meer我已經添加了一個代碼示例(沒有完成最後一行的部分) – jeroen 2012-02-08 13:28:50

+1

工作就像一個魅力,感謝一羣快速解決方案尋找幾個小時! – 2012-02-08 13:32:23