2011-07-20 67 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