0

我在数据库中有一个这样的表:

ID、特征、值:ID 为 1、2、3.... 特征为颜色、尺寸、材料.... 值为红色、13 英寸、硅...

我是这样存储的:

编号

1
1
1

特点
颜色
尺寸
材料


红色
13in

并且对于产品 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 )

4

1 回答 1

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;
于 2013-09-27T11:29:31.057 回答