2014-05-02 50 views
1

我的數據表中存儲數到行。現在我想和他們一起創建桌子。我想箱子X行和Y列。我知道我應該使用,同時或foreach循環,但我不知道如何... :(如何在環環...? PHP - 庫MySQLi

$result = $db->query(
     "SELECT `x`,`y`,`noe` FROM `table` " 
     . "WHERE (`x` >= 0 and `x` < 4) and (`y` >= 0 and `y` < 4) " 
     . "ORDER BY `x`,`y` ASC") or die($db->error); 

if($result) { 
    echo "<pre>",$result->num_rows,"</pre>"; 
    echo "<pre>", print_r($row = $result->fetch_object()),"</pre>"; 
?> 
<table> 

<?php 
    while($row = $result->fetch_all()){ 
     //echo "X: ", $row->x, " ,Y: ", $row->y," ,Type of item: ", $row->noe,"<br>"; 
     echo '<tr><td>',$row->x,'-',$row->y,'</td></tr>'; 
    } 
} 
?> 
</table>  
+0

在這種情況下,「X」行和「Y」列是什麼意思? – asprin

+0

@asprin我想創建這樣的東西:http://uploadco.ir/uploads/ohxpfv53d09fx445odoj.png –

回答

1

這是一個有趣的問題。如果你有一個二維數組,你說的沒錯,你會遍歷x,然後再在每個yx給定值,但您的數據,但它描述了一個二維結構,是在一個平坦的結果。我最好遍歷行,保留最後x的軌道,並創造新<tr>..</tr>每次你發現在你的結果x時間是從一個在最後一次迭代(即該行已經改變)不同。

類似於

$lastx = -1; // or some value you know you'll never use 
while ($row = $result->fetch_all()) { 
    $x = $row['x']; 
    if ($x != $lastx) { 
    echo '<tr>'; 
    } 
    echo '<td>...</td>' 
    if ($x != $lastx) { 
    echo '</tr>'; 
    $lastx = $x; 
    } 
} 
+0

我想創建這樣的東西:http://uploadco.ir/uploads/ohxpfv53d09fx445odoj.png –

+0

是啊我知道。添加了一個代碼示例 – Nicolas78