当下一个id到来时,显示下一行中的数据

时间:2013-09-27 10:46:00

标签: php

我在数据库中有一个表格,如下所示:

ID,功能,值:ID为1,2,3 ...... 功能将是颜色,大小,材料.... 值将是红色,13英寸,硅......

我这样存储了它:

ID

1
1
1个

特点
颜色
尺寸
材料


红色
13英寸硅

继续产品2 ......我试图以表格形式显示它,我没有得到它。

实际上当id -2到来时它必须进入下一行......但是它会继续显示在同一行......

有人可以告诉我该怎么做吗?

我试过这个

echo "<table width='100%'>";
echo "<tr><th>color</th>
<th>size</th>
<th>material</th></tr>";
echo "<tr>";
while ($row = mysql_fetch_assoc($result)) {

    echo "<td>".$row['values']."</td>";


} 
echo "</tr>";
echo "</table>";

已编辑 * *

这是我的完整代码

if(isset($_POST['submit']))

{
$id = $_POST['id'];

$test = "SELECT id, features, values FROM mytable WHERE features IN ('color', 'size', 'material') AND id IN (" . implode(',',$id) .")";
$result = mysql_query($test) or die (mysql_error());
echo "<table width='100%'>";
echo "<tr><th>color</th>
<th>size</th>
<th>material</th></tr>";
echo "<tr>";
while ($row = mysql_fetch_assoc($result)) {

    echo "<td>".$row['values']."</td>";


} 
echo "</tr>";
echo "</table>";
}

print_r(mysql_fetch_assoc($result));的输出

Array ([id] => 1 [features] => color [values] => red )

1 个答案:

答案 0 :(得分:0)

我认为这应该可以解决问题:

$table_markup = '<tr>';
$current_row = null;

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

    if ( $current_row === null ) {
        $current_row = $row['id'];
    }

    if ( $current_row != $row['id'] ) {
        $current_row = $row['id'];
        $table_markup .= '</tr><tr>';
    }

    $table_markup .=  '<td>' . $row['values'] . '</td>';
}

/* cutting off the last opened-TR tage */
$table_markup .= substr($table_markup, 0, -4);

echo $table_markup;