从php MySQL查询输出以分号分隔的行


Outputting semicolon-delimited rows from php MySQL query

我正在通过PHP从MYSQL DB中提取所有细节,并在一个简单的while循环中循环以写出HTML中的输出。

$queryDB = mysql_query("SELECT * FROM TABLEA")
while($info = mysql_fetch_array( $queryDB ))  
    echo " <tr> ";
    echo "<td ".$td_color." > " . $info['column1'] . "</td> ";
    echo "<td ".$td_color." > " . $info['column2'] . "</td> ";
    echo "<td align='center' ".$td_color." > " . $info['column3'] . "</td> ";
    echo "<td align='center' ".$td_color." > " . $info['column4'] . "</td> ";
    echo "<td ".$td_color." > " . $info['column5'] . "</td> ";
    echo "<td ".$td_color." > " . $info['column6'] . "</td> ";
    echo "</tr> ";

直到最近,这还可以正常工作,但最近发生的事情是,其中一列已经从一个简单的输入增长到包含由;分隔的多个条目。

例如:

Column 1 | Column 2 | Column 3 | Column 4 | Column 5 | Column 6 | 
-----------------------------------------------------------------
ABC      | DEF      | HIG      | 123; JKL | 324      |   345    |
123      | GHK      | GHY      |1 ; 3; KL | 546      |   546    |

但是检查这个有点麻烦,因此我希望我的代码将第4列的内容分开,并重复这些行以具有单个条目,例如:

Column 1 | Column 2 | Column 3 | Column 4 | Column 5 | Column 6 | 
-----------------------------------------------------------------
ABC      | DEF      | HIG      | 123      | 324      |   345    |
ABC      | DEF      | HIG      | JKL      | 324      |   345    |
123      | GHK      | GHY      |1         | 546      |   546    |
123      | GHK      | GHY      |3         | 546      |   546    |
123      | GHK      | GHY      |KL        | 546      |   546    |

我知道我可能要把第4列放到一个数组中,但我只是不理解或不知道如何将它们组合在一起。

根据分列的位置,我将展开该列并循环遍历元素。如果你知道分列总是在第4列:

$queryDB = mysql_query("SELECT * FROM TABLEA")
while($info = mysql_fetch_array( $queryDB )){  
 $elements = explode(";", $info['column4']);
 foreach($elements as $element){
  echo " <tr> ";
  echo "<td ".$td_color." > " . $info['column1'] . "</td> ";
  echo "<td ".$td_color." > " . $info['column2'] . "</td> ";
  echo "<td align='center' ".$td_color." > " . $info['column3'] . "</td> ";
  echo "<td align='center' ".$td_color." > " . $element . "</td> ";
  echo "<td ".$td_color." > " . $info['column5'] . "</td> ";
  echo "<td ".$td_color." > " . $info['column6'] . "</td> ";
  echo "</tr> ";
 }
}