PHP从单个列中获取自定义标签并将其分开

时间:2018-07-20 21:00:08

标签: php

非常感谢您阅读我的问题。 因此,我手中只有一个文本区域,可以提交到表中的单个列。

假设我仅在1行中发送此值:

<first_name>Sophia</first_name><last_name>Aba</last_name>
<first_name>Ana</first_name><last_name>Bush</last_name>

提交后,将转到“贡献者”列。

现在我想从数据库中获取该值并像这样将它们分开:

<?php

$get = $connect->query("SELECT * FROM articles WHERE id= '1' ");
$fetch = $get->fetch_array(MYSQLI_ASSOC);

$contributors = $fetch['contributors'];

但是现在我如何才能分隔该条目,使php在标签内获取名称并检测有多少,这样我就可以将thoose放入单独的变量中,如:

<?php 

$count = "HERE COUNT FOR HOW MUCH FIRST_NAME THERE IS "
for($i = 0; i >= $count; $i++){
  $array = ("a","b","c");
  $first_name_$array[$i] = "HERE THE VARIABLE THAT GETS THE FIRST_NAME TAG OF THE FIRST";  // I know this is  incorrect way of incrementing a variable name that's why im also asking for help  
}

1 个答案:

答案 0 :(得分:0)

采用其他方式

首先,我建议首先以不同的方式存储数据。保存XML,然后将其从数据库中读取后再从中提取数据,这只是一种非常复杂的方法(如您所见,您会看到有关如何做的问题)。另请参见Database normalization

如果您绝对必须采用这种方式

我建议为此使用PHP的SimpleXML,

<?php

$contributors =
"<contributors>
    <contributor>
        <first_name>Sophia</first_name>
        <last_name>Aba</last_name>
    </contributor>
    <contributor>
        <first_name>Ana</first_name>
        <last_name>Bush</last_name>
    </contributor>
</contributors>";

$xmlContributors = new SimpleXMLElement($contributors);

foreach ($xmlContributors->children() as $contributor) {
    echo 'This is one contributor: ' . $contributor->first_name . ' ' . $contributor->last_name . PHP_EOL;
}

但是,请注意,您必须更改XML结构才能完全具有合理的XML构建(如上所示)。