如何从mysql db中显示多行逗号分隔值

时间:2012-06-22 10:40:12

标签: php mysql

我需要你的帮助,在我的数据库中显示一些以逗号分隔的逗号。

我的主表架构看起来像这样

              |---|----------|-----------|----------------------------|
              |id | tab1     |  tab2     |          tab3              | 
              |---|----------|-----------|----------------------------|
              |1  |  state1  |  A-North  |   constA1,constA2,constA3  |
              |2  |  state2  |  B-South  |   constB1,constB2,constB3  |
              ---------------------------------------------------------

查询我正在努力工作

$query = mysql_query("SELECT * FROM `main` WHERE `tab1` = '$tab1'") 
         or die(mysql_error());

while($row=mysql_fetch_array($query)){                  
  $tab3 = explode(",", $row['tab3']);
  echo $tab3."<br>";
}       

我想从数据库中显示什么

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3

我运行该查询时遇到的错误是“数组”。当我从phpMyAdmin运行相同的代码时,我得到了所需的行(结果)。

3 个答案:

答案 0 :(得分:4)

Explode会在数组中显示结果,因此您需要另一个通过$ tab3数组运行的循环来打印结果。请参阅PHP手册中的定义:

  

返回一个字符串数组,每个字符串都是字符串的子字符串   通过将其分割成由字符串分隔符形成的边界而形成。

例如:

for ($i = 0; $i < sizeof($tab3); $i++) {
    echo $tab3[$i].'<br />';
}

答案 1 :(得分:1)

explode将使用print_r($tab3)返回数组,您可以查看项目并通过

访问它
echo $tab[0];
echo $tab[1];
echo $tab[2];

等.....

答案 2 :(得分:0)

explode ($separator,$string)返回一个数组。您需要单步执行数组以创建表列。

另外,正如您希望两列中的数据一样,将它们分别创建为两个单独的表,然后将它们作为两个单独的单元格包含在一个表中

最后,重新设计数据库表。你最后会感谢我们