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