Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何显示mysql数据库中多行逗号分隔的值_Php_Mysql - Fatal编程技术网

Php 如何显示mysql数据库中多行逗号分隔的值

Php 如何显示mysql数据库中多行逗号分隔的值,php,mysql,Php,Mysql,我需要你的帮助,从我的数据库中显示一些逗号分隔的条目 A-North B-South --------------------- constA1 constB1 constA2 constB2 constA3 constB3 我的主表模式如下所示

我需要你的帮助,从我的数据库中显示一些逗号分隔的条目

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
我的主表模式如下所示

              |---|----------|-----------|----------------------------|
              |id | tab1     |  tab2     |          tab3              | 
              |---|----------|-----------|----------------------------|
              |1  |  state1  |  A-North  |   constA1,constA2,constA3  |
              |2  |  state2  |  B-South  |   constB1,constB2,constB3  |
              ---------------------------------------------------------
               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      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

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

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

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
返回字符串数组,每个字符串都是字符串的子字符串 通过在由字符串分隔符形成的边界上拆分它而形成

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
例如:

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
for ($i = 0; $i < sizeof($tab3); $i++) {
    echo $tab3[$i].'<br />';
}
for($i=0;$i;
}

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

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
返回字符串数组,每个字符串都是字符串的子字符串 通过在由字符串分隔符形成的边界上拆分它而形成

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
例如:

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
for ($i = 0; $i < sizeof($tab3); $i++) {
    echo $tab3[$i].'<br />';
}
for($i=0;$i;
}

explode将使用
print\r($tab3)返回数组。
您可以通过

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
echo $tab[0];
echo $tab[1];
echo $tab[2];

etc.

explode将使用
打印($tab3)返回数组。
您可以通过

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
echo $tab[0];
echo $tab[1];
echo $tab[2];
etc….

分解($separator,$string)
返回一个数组。您需要逐步遍历数组来创建表列

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
此外,由于您希望数据分为两列,请将这些列分别创建为两个单独的表,然后将它们作为两个单独的单元格包含到一个表中

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
最后,重新设计数据库表。最后,您将感谢我们

explode($separator,$string)返回一个数组。您需要逐步遍历数组来创建表列

               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3
此外,由于您希望数据分为两列,请将这些列分别创建为两个单独的表,然后将它们作为两个单独的单元格包含到一个表中

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

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

你的数据库结构违反了第一条规范化规则。您最好重新设计您的模型,以避免将来出现类似的问题。(请记住引用数据库的查询字符串和浏览器的输出,例如,请参阅使用
htmlentities
mysql\u real\u escape\u string
)您的数据库结构违反了第一条规范化规则。您最好重新设计您的模型,以避免将来出现类似的问题。(请记住引用数据库的查询字符串和浏览器的输出,例如,请参阅
htmlentities
mysql\u real\u escape\u string
)是否确实要在数组中循环?如果其中有3个以上的项目,该怎么办?您确定要在数组中循环吗?如果里面有3个以上的项目呢?谢谢你指出这么重要的信息。我在想,如果tab3的条目大约为100或200,这是否意味着用户必须继续在不同的框中输入?请问我如何重新设计数据库结构。?感谢将“tab3”列移动到单独的表中,但每个值(即constA1、constA2、constA3等)都位于单独的字段中,并引用回主表的ID值。类似于
创建表tab3(`id`int(10)无符号非空自动增量主键,`mainID`int(10)无符号非空默认值0,`tab3Value`varchar(100)非空默认值“”)。感谢您指出如此重要的信息。我在想,如果tab3的条目大约为100或200,这是否意味着用户必须继续在不同的框中输入?请问我如何重新设计数据库结构。?感谢将“tab3”列移动到单独的表中,但每个值(即constA1、constA2、constA3等)都位于单独的字段中,并引用回主表的ID值。类似于
创建表tab3(`id`int(10)无符号非空自动增量主键,`mainID`int(10)无符号非空默认值0,`tab3Value`varchar(100)非空默认值“”)
               A-North      B-South
               ---------------------                   
               constA1      constB1
               constA2      constB2
               constA3      constB3