0

我正在尝试通过 php 从 mysql 表中使用节分隔符来实现排序列表,但是遇到了一些麻烦。我没有像我想要的那样把汤放在汤头里,而是把它放在下面的头里(就像我不想要的那样)!

这是视觉输出:

2-Soup
3-Salad
    2   Soup     Demo: Tom KaKai
4-Entree
    3   Salad    Demo: Spinach Salad
    4   Entree   Demo: Pork Chop
    4   Entree   Demo: Spicy Topped Shrimp

这是我的代码:

 $cat = null;
while($row = mysql_fetch_array($result))
{
    if( $row['catnum'] != $cat )
    {
        echo '<h1>' . $row['catnum'] . '-' . $row['ctgry'] . '</h1>';
        $cat = $row['catnum'];
    }
   echo "<table><tr><td>" . $row['catnum'] . " </td><td>" . $row['ctgry'] . "</td><td> " . $row['Shrt_Desc'] . "</td></tr>";
}
4

1 回答 1

2

您没有关闭<table>标签,而是为检索到的每个 DB 行创建一个新表,因此从结构上讲,您的 HTML 页面完全是一团糟。

你想要这样的东西:

$first = true;
while ($row = mysql_fetch_array($result)) {
    if ($row['catnum'] != $cat) {
       if (!$first) {
           echo '</table>'; // close the table if we're NOT the first row being output.
       }

       $first = false; // no longer the first table, so disable this check.
       echo '<h1> etc...';
       echo '<table>'; // start new table
       $cat = $row['catnum'];
    }
    echo '<tr><td>' etc.... // output a table row
}

当您更改类别时,此代码只会输出<table>and <h1> 的东西。

于 2012-04-09T16:28:20.903 回答