2011-07-20 68 views
3

我很新的這一點,不知道我應該怎麼做,Mysql的獲取數組,結果見表

我有一個名爲列數據庫「名稱」

我怎樣才能讓它顯示在那裏?

<tr> 
    <td width="270px">Henry</td> 
    <td width="270px">Jeffrey</td> 
    <td width="270px">Hansel</td> 
    </tr> 

    <tr> 
    <td width="270px">Michelle</td> 
    <td width="270px">Jackson</td> 
    <td width="270px">Ivan</td> 
    </tr> 

我只知道我應該怎麼做,如果記錄一個接一個地垂直。

$result = mysql_query('SELECT * FROM member'); 

    while($row = mysql_fetch_array($result)) 
    { 
    echo' 
    <tr> 
    <td width="270px">'.$row['names'].'</td> 
    <td width="270px">Jeffrey</td> 
    <td width="270px">Hansel</td> 
    </tr>'; 

這裏還挺stucked ...

對不起,我忘了把這個。

我想要的是它應該循環標籤。所以我可以有一個無限行的3列表。

這是什麼回合呢?如果我想讓它循環呢?

<tr> 
<td><img src="images/ava/A.png" /></td> 
<td>A</td> 
<td width="2px" rowspan="3"></td> 
<td><img src="images/ava/B.png" /></td> 
<td>B</td> 
</tr> 


<tr> 
<td>A</td> 
<td>B</td> 
</tr> 

回答

3

$row將在循環的每個迭代更新:

$result = mysql_query('SELECT * FROM member'); 

echo '<tr>'; 

for($i = 0; $row = mysql_fetch_array($result); $i = ($i+1)%3){ 
    echo '<td width="270px">'.$row['names'].'</td>'; 
    if($i == 2) 
     echo '</tr><tr>'; 
} 

echo '</tr>'; 
+0

謝謝,但我編輯了我的意思,忘了把它放進去。 – Crays

+0

忘了把什麼? – Paulpro

+0

我想要的是它應該循環沿着標籤。所以我可以有一個無限行的3列表。 – Crays

2
$result = mysql_query('SELECT * FROM member'); 
    echo'<tr>' 
    while($row = mysql_fetch_array($result)) 
    { 

    echo '<td width="270px">'.$row['names'].'</td>'; 
    } 

    echo '</tr>'; 
1
$result = mysql_query('SELECT * FROM member'); 

echo '<tr>; 

while($row = mysql_fetch_array($result)) 
{ 

    echo '<td width="270px">'.$row['names'].'</td>'; 
} 

echo '</tr>'; 
1

比方說你有一個名爲$names名稱的數組,那麼你可以做你想要什麼代碼看起來像這樣:

<tr> 
<?php 

foreach($names as $name) { 
    print "<td>$name</td>"; 
} 
?> 
</tr> 

這將把所有的名字放在同一行。

爲了啓動一個新行說,每3名,你可以把一個if語句中的for循環是這樣的:

// assume we have these variables available. 
$row_number; 
$max_cols = 3; 

// this goes at the top of the foreach 
if($row_number % $max_cols == 0) { 
    print '</tr><tr>'; 
} 
0

所以大部分這些答案會爲雜牌。首先,如果你想要的只是結果集中的名字,那麼只需要問它。因此而不是去:

$result = mysql_query('SELECT * FROM member'); 

而是去:

$result = mysql_query('SELECT names FROM member'); 

而且,每個人似乎都忽視了三米欄的請求,並且可以使用模來告訴你何時打破滿意行。我們會做一點魔術來確保你總是關閉行標記。

$row_count = 0; 
while($row = mysql_fetch_array($result)) 
    { 
    if($row_count % 3 == 0) 
    { 
     echo '<tr>'; 
    } 
    echo '<td width="270px">'.$row['names'].'</td>'; 
    if($row_count % 3 == 0) 
    { 
     echo '</tr>'; 
    } 
    $row_count++; 
    } 

我不希望太挑剔你的方案,但如果你有一個選擇,這是更好地命名錶像members而不是成員複數,因爲你有行的集合,每個一個代表一個「成員」。除非你的成員有多個names那個列可能最好被稱爲'名字'。

1

你知道通過在啓動變量之前分配行計數和少數標誌來知道初始化循環或開始/結束循環來實現這一點。

$i = 1; 
$initFlag = false; 
$flag = "closed"; 
while($row = mysql_fetch_array($result)) { 
    if($i%3 == 0) $initFlag = false; 
    if($flag == "closed" && ($i == 1 || $i % 3 == 1)) { 
     echo "<tr>"; $flag = "started"; $initFlag = true; 
    } 

    echo '<td width="270px">'.$row['names'].'</td>'; 

    if(!initFlag && $flag == "started" && $i % 3 ==0) { 
     echo "</tr>"; $flag = "closed"; 
    } 


    $i++; 
} 
+0

其幹運行測試,但它應該工作。 – Starx