2013-03-22 41 views
-5

我想在單次迭代得到兩個數據行:PHP獲取2個數據行的單次迭代

$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error()); 


while($row = mysql_fetch_assoc($query)){ 
//returns single row` 
} 

在一個HTML表中單列

2數據線

<tr> 
    <td>data 1</td> 
    <td>data 2</td> 
</tr> 
+0

那麼你應該打破。不要讓我們阻止你。 – George 2013-03-22 09:39:46

+2

是什麼問題? – 2013-03-22 09:40:42

回答

0

首先將所有數據存入數組。然後編寫該數組多維數組。所以你可以在每一個鍵上按兩行就像這樣。

while($row = mysql_fetch_assoc($query)){ 
    $data[] = $row; 
} 

$last_data = array(); 
$key = 0; 
for($i=0;$i<sizeof($data);$i++) { 
    if($i%2 == 0) 
    { 
    $key++; 
    } 
    $last_data[$key][] = $data[$i]; 
} 

然後你可以遍歷html表。

<?php foreach ($last_data as $key => $row) { ?> 
<tr> 
    <?php foreach ($row as $k => $row1) { ?> 
    <td> <?php echo $row1['field'] ?></td> 
    <?php } ?> 
</tr> 
<?php } ?> 

(建議使用mysqli_ *而不是mysql_ *使用過時的擴展讓你的代碼。)

+0

我完成了。非常感謝您的幫助。它幫助我解決了這個問題。 – lanka 2013-03-22 10:11:26

0

我不知道你是否想要這個,但嘗試:

<tr> 
<?php 
$query = mysql_query("SELECT * FROM tbl_website_index")or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)){ 
?> 
<td><?php echo $row['col'] ?></td> 
<?php 
} 
?> 
+0

不完全,但非常感謝您的幫助 – lanka 2013-03-22 10:10:15

0

首先 - 請不要使用mysql_query,而是使用PDO。其次 - 你永遠不會這樣做。有些方法可以通過引用(next())來實現。但那很糟糕。因此,我建議如下:

$query = $this->db->prepare("select * from tbl_website_index"); 
$query->execute(); 
$data = array(); 

while ($row = $query->fetch(PDO::FETCH_OBJ)) 
{ 
$data[] = $row->fieldName; 
} 

$data = "<li>" . implode("</li><li>", $data) . "</li>"; 
print "<ul>" . $data . "</ul>"; 

這將實現您正在嘗試做的事情。我還沒有測試過它。

+0

必須做一些更多的家庭工作有關此感謝 – lanka 2013-03-22 10:11:59