HTML标记格式化php和MySQL

HTML标记格式化php和MySQL,php,mysql,html,Php,Mysql,Html,我有一个MySQL声明 Select type.type, color.color, ShotName, Item.name, Item.Item_id From type Inner Join Item On type.type_id =Item.type_id Inner Join color On color.color_id =Item.color_id Where Item.state=0 And Item.offline =

我有一个MySQL声明

Select type.type, color.color, ShotName, Item.name, Item.Item_id
  From type 
    Inner Join Item 
      On type.type_id =Item.type_id 
    Inner Join color 
      On color.color_id =Item.color_id 
  Where Item.state=0 And Item.offline = 0
  Group By color.color, Item.name, type.order_nr
  Order By type_D.order_nr, color.color, Item.name_d
如何使用php将结果格式化为以下HTML?我已设法列出项目,但无法正确放置

<body>
  <h2> Type AA </h2>
  <h3> color black </h3>
  <ul>
    <li> ShortName 1 name 1</li>
    <li> ShortName 2 name 2</li>
    <li> ShortName 3 name 3</li>
    <li> ShortName 4 name 4</li>
    <li> ShortName 5 name 5</li>
  </ul>
  <h3> color green </h3>
  <ul>
    <li> ShortName 7 name 7</li>
    <li> ShortName 8 name 8</li>
    <li> ShortName 9 name 9</li>
    <li> ShortName 10 name 10</li>
    <li> ShortName 11 name 11</li>
  </ul>
  <h2> Type AB </h2>
  <h3> color black </h3>
  <ul>
    <li> ShortName 12 name 12</li>
    <li> ShortName 13 name 13</li>
    <li> ShortName 14 name 14</li>
    <li> ShortName 15name 15</li>
    <li> ShortName 16name 16</li>
  </ul>
  <h3> color green </h3>
  <ul>
    <li> ShortName 17 name 17</li>
    <li> ShortName 18 name 18</li>
    <li> ShortName 19 name 19</li>
    <li> ShortName 20 name 20</li>
    <li> ShortName 22 name 22</li>
  </ul>
</body>

AA型
黑色
  • ShortName 1名称1
  • ShortName 2姓名2
  • ShortName 3姓名3
  • 短名称4名称4
  • ShortName 5姓名5
绿色
  • ShortName 7 name 7
  • 短名8姓名8
  • ShortName 9 name 9
  • 短名10姓名10
  • ShortName 11 name 11
AB型 黑色
  • 短名12姓名12
  • 短名13姓名13
  • 短名14姓名14
  • ShortName 15姓名15
  • ShortName 16姓名16
绿色
  • 姓名17姓名17
  • 短名18姓名18
  • 短名19姓名19
  • 短名20姓名20
  • ShortName 22 name 22
这是我的PHP代码

$myfile = mysql_query($query_myfile, $db) or die(mysql_error());
$totalRows_myfile = mysql_num_rows($myfile);

while ( $row_myfile = mysql_fetch_assoc($myfile) ) 
{
    if ( $type != $row_myfile[ 'type' ] ) 
    {

        $type = $row_myfile[ 'type' ];

        echo "<h2>$type</h2>";

    }
    if ( $color != $row_myfile[ 'color' ] ) 
    {

        $color = $row_myfile[ 'color' ];

        echo "<h3>$color</h3>";
    }

    echo "<li><a href=\"itemDetail.php?item_id=".$row_myfile['myfile_id']. "\">";
    echo $row_myfile['ShortName'].' ';
    echo $row_myfile['name']; ?></a></li>
$myfile=mysql\u query($query\u myfile,$db)或die(mysql\u error());
$totalRows\u myfile=mysql\u num\u rows($myfile);
while($row\u myfile=mysql\u fetch\u assoc($myfile))
{
如果($type!=$row\u myfile['type']))
{
$type=$row_myfile['type'];
回显“$type”;
}
如果($color!=$row\u myfile['color']))
{
$color=$row_myfile['color'];
回声“$color”;
}
回声“

  • 添加更多要在li标记中显示的内容

    $sql = "copy your sql";
    
    $result_set = $result = mysql_query($sql);
    echo "<body>";
    $type = false;
    $color = false;
    $close_ul = false;
    while ($row = mysql_fetch_assoc($result)) {
        if ($type != $row['type']) {
            if ($close_ul) { 
                echo "</ul>"; 
                $close_ul = false;
            }
            $type = $row['type'];
            echo "<h2>$type</h2>";
            $color = false;
        }
        if ($color != $row['color']) {
            if ($close_ul) { 
                echo "</ul>"; 
                $close_ul = false;
            }
            $color = $row['color'];
            echo "<h3>$color</h3>";
            echo "<ul>";
            $close_ul = true;
        }
    
        echo "<li>",$row['shortname'],"</li>";
    }
    if ($close_ul) { 
        echo "</ul>"; 
        $close_ul = false;
    }
    echo "</body>";
    
    $sql=“复制您的sql”;
    $result\u set=$result=mysql\u查询($sql);
    回声“;
    $type=false;
    $color=false;
    $close_ul=假;
    while($row=mysql\u fetch\u assoc($result)){
    如果($type!=$row['type'])){
    如果($close_ul){
    回声“”;
    $close_ul=假;
    }
    $type=$row['type'];
    回显“$type”;
    $color=false;
    }
    如果($color!=$row['color'])){
    如果($close_ul){
    回声“”;
    $close_ul=假;
    }
    $color=$row['color'];
    回声“$color”;
    回声“
      ”; $close_ul=真; } echo“
    • ”、$row['shortname']、“
    • ”; } 如果($close_ul){ 回声“
    ”; $close_ul=假; } 回声“;
    正确地联系您的html。以下是解决方案

    while ( $row_myfile = mysql_fetch_assoc($myfile) ){
    
                    if ( $type != $row_myfile[ 'type' ] ) 
                    {
    
                        $type = $row_myfile[ 'type' ];
    
                        echo "<h2>$type</h2>";
    
                    }
                    if ( $color != $row_myfile[ 'color' ] ) 
                    {
    
                        $color = $row_myfile[ 'color' ];
    
                        echo "<h3>$color</h3>";
                    }
    
                    echo "<ul>"; 
                    echo "<li>";                
                    echo "<a href='itemDetail.php?item_id='$row_myfile['myfile_id']'>ShortName ".$row_myfile['ShortName']." Name " .$row_myfile['name']." </a>";               
                    echo "</li>";
                    echo "</ul>";
                }
    
    while($row\u myfile=mysql\u fetch\u assoc($myfile)){
    如果($type!=$row\u myfile['type']))
    {
    $type=$row_myfile['type'];
    回显“$type”;
    }
    如果($color!=$row\u myfile['color']))
    {
    $color=$row_myfile['color'];
    回声“$color”;
    }
    回声“
      ”; 回声“
    • ”; 回声“; 回声“
    • ”; 回声“
    ”; }
    thanx很多,但我得到了这个错误语法错误,意外的'EOF',这意味着有一个}或缺少什么,或'。。。。可能是复制和粘贴错误。你可以发布完整的文件吗?更正了,但现在我得到了这个
    • 应该是
      • 。所有ul均关闭,无打开
          为打开
            回声“$color”;回声“
              thanx,但计数器仅为5..我可以有更多或更少的mysql扩展已经过时,正在被弃用。新代码应该使用mysqli或PDO,两者都有重要的优点,比如支持预处理语句。请注意,
              或die(mysql_error())
              不应该出现在生产代码中,因为HTML输出和数据库错误消息不应该像它一样显示给非管理员用户。更好的方法是正确地实现错误处理。