我想打破从数据库中检索到的逗号分隔值,然后将每个个体放在一个字符串中,并仅在for循环中打印它。我从数据库中获取值,但我无法破坏值。以下是我到目前为止所做的代码。请帮助解决我的问题。提前谢谢。
$query="select * from create_segment";
$result = mysql_query($query,$link) or die(mysql_error());
$number_of_segment=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result))
{
$segments[]=$row;
}
foreach($segments as $success) {
$thePostIdArray = explode(', ', $success['subjects']);
for($i=0; $i < count($thePostIdArray); $i++)
{
echo "string...".$strings=$thePostIdArray[$i];
}
}
输出:
string...1,2,3,4,5,6,7,8,9,10
string...1,2,3,4,5,6,7,8
但我想要这样的事情:
for(......)
{
echo "values...".$i;
}
应该输出
values...1
values...2
values...3 and so on.
我的数据库结构如下:
id subjects
1 1,2,3,4,5
2 1,2,7
答案 0 :(得分:1)
请尝试在
中使用','
代替', '
explode(', ', $success['subjects']);
声明所以它看起来像:
explode(',', $success['subjects']);
答案 1 :(得分:1)
使用:
explode(',', $success['subjects'])
逗号后面有空格,但数据库值中没有空格。
答案 2 :(得分:0)
如果您有机会更改数据库结构,则应将该表转换为以下内容:
Id Subject
1 1
1 2
1 3
2 1
etc.
它将使您的查询更容易,并且它是正确的方法。它还将使您将来更容易将此表与其他表连接以获得所需的结果。我知道这并没有回答你的问题,但一些好的建议永远不会受到伤害。其中一个答案将直接回答您的问题。
答案 3 :(得分:0)
$query="select * from create_segment";
$result = mysql_query($query,$link) or die(mysql_error());
$number_of_segment=mysql_num_rows($result);
while($row = mysql_fetch_assoc($result))
{
foreach (explode(',',$row['subjects']) as $value){
echo echo "string... {$row['id']} " . $value . '<br />';
}
}