PHP / MySQL帮助在分隔符和ID之间解析/提取

时间:2014-04-16 20:55:33

标签: php mysql parsing delimiter

我已将SharePoint中的数据导入MySQL数据库,我需要从字符串中提取和格式化某些数据,同时忽略分隔符之间的数字SharePoint ID。示例名称字段,其中多个条目为字符串:

Smith, Bob;#5800;#Jones, Mark;#6067;#Brown, Alex

我希望输出看起来像这样:

Smith, Bob</br>
Jones, Mark</br>
Brown, Alex

我当前的查询有效并返回结果。当前查询:

<?php 
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($sql_result)>0) {
while ($row = mysql_fetch_assoc($sql_result)) {
?>
<tr>
  <td><?php echo $row["Project Title"]; ?></td>
  <td><?php echo $row["Project Description"]; ?></td>
  <td><?php echo $row["Project Sponsor(s)"]; ?></td>
</tr>
<?php } ?>

包含此特定字符串的字段是Project Sponsor(s)。

如何使用#解析这些随机ID?定界符?

帮助?

3 个答案:

答案 0 :(得分:1)

只需替换为<br />

echo preg_replace('/;#?[^;]+;#?/', '<br />', $row['Project Sponsor(s)']);

答案 1 :(得分:0)

$ php -r 'print_r(explode(";#", "Smith, Bob;#5800;#Jones, Mark;#6067;#Brown, Alex"));'
Array
(
    [0] => Smith, Bob
    [1] => 5800
    [2] => Jones, Mark
    [3] => 6067
    [4] => Brown, Alex
)

你想要0,2和4。

答案 2 :(得分:0)

尝试preg_split()

这个正则表达式可能有用,或者可能需要更多调整:

$sponsors = preg_split("/;#[0-9]+;#/", $row["Project Sponsor(s)"]);

现在你可以遍历列表,格式化名称等....