Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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 在字符串中分隔多个元素_Php_Mysql - Fatal编程技术网

Php 在字符串中分隔多个元素

Php 在字符串中分隔多个元素,php,mysql,Php,Mysql,如何在一个字符串中分隔多个元素 我正在将信息从旧数据库传输到新表中。旧表中的一列包含一个长字符串,其中包含多个标题 有成千上万的这样的记录。我知道如何使用php/mysql在列中包含的每个字符串上循环。但是,我不知道如何提取字符串中每个标题下的数据,并将其内容放入新列中 请注意,每个记录的标题都是相同的 i、 e 第一节, 第二节。 所以,我基本上需要提取第一节下面的数据,放在它自己的列中,并对其他部分做同样的操作 第一节? 我喜欢与人交流,并根据他们周围的情况进行调整 第二节? 因此,他们会得

如何在一个字符串中分隔多个元素

我正在将信息从旧数据库传输到新表中。旧表中的一列包含一个长字符串,其中包含多个标题

有成千上万的这样的记录。我知道如何使用php/mysql在列中包含的每个字符串上循环。但是,我不知道如何提取字符串中每个标题下的数据,并将其内容放入新列中

请注意,每个记录的标题都是相同的 i、 e

第一节,

第二节。

所以,我基本上需要提取第一节下面的数据,放在它自己的列中,并对其他部分做同样的操作

第一节?

我喜欢与人交流,并根据他们周围的情况进行调整

第二节?

因此,他们会得到正确的指导,以解决周围的问题,并 鼓励和激励

第三节?
我相信每一次阅读都应该是令人振奋和积极的,当有人觉得

第四节?

2004年1月,当我为Facebook编写第一个代码时,我希望它能帮助我所在学院的学生建立联系,并将我们的社区凝聚在一起

更新-我已附上表格

旧表

这是从中提取数据的表; 我们将从profile列中提取信息

CREATE TABLE IF NOT EXISTS `readers` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `profile` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1778 ;
新表格

这是数据将要转到的表。共有6列。因此,第一节中的数据将进入第一列,以此类推

CREATE TABLE IF NOT EXISTS `reader_personal_details` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `question1` longtext COLLATE utf8_unicode_ci,
  `question2` longtext COLLATE utf8_unicode_ci,
  `question3` longtext COLLATE utf8_unicode_ci,
  `question4` longtext COLLATE utf8_unicode_ci,
  `question5` longtext COLLATE utf8_unicode_ci,
  `question6` longtext COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
更新两个; 我刚刚注意到,这些标题包含在HTML代码中。这会改变答案吗

i、 e

第一节?

我喜欢与人交往,并融入他们身边的事物?


SQL中一种可能的解决方案。不是100%满意

设置一个按顺序包含所有标题的表(即,id与标题的显示顺序相同,或使用单独的顺序字段)

然后用它连接数据表两次,一次获取标题,一次获取下一个存在的标题(使用MIN)

将其用作子查询,并对表进行连接,以从字段中实际提取值

请注意,如果标题重复(即,如果标题也出现在文本中),这将无法正常工作

我用以下表格进行了测试:-

CREATE TABLE sections
(
    id  INT,
    section_name    VARCHAR(255)
);

INSERT INTO sections VALUES
(1, 'section One?'),
(2, 'Section Two?'),
(3, 'Section Three?'),
(4, 'Section four ?');


CREATE TABLE some_table
(
    id  INT,
    full_field  TEXT
);

INSERT INTO some_table VALUES
(1, 'section One?

I enjoy connecting with people and tuning it to what is around them

Section Two?

so they receive the right guidance to resolve issues around them and to encourage and inspire.

Section Three?
I believe that every reading should be uplifting and positive and when someone feels that,

Section four ?

When I wrote the first code for Facebook in January 2004, I hoped it would help students at my college connect and bring our community together.');
编辑

如果您只想输出到固定列,并且分隔符是固定的,那么应该相当容易,如下所示:-

INSERT INTO reader_personal_details (`id`, `question1`, `question2`, `question3`, `question4`, `question5`, `question6`)
SELECT id,
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Two?', 1), 'section One?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Three?', 1), 'section Two?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section four ?', 1), 'Section Three?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Five?', 1), 'Section four ?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Six?', 1), 'section Five?', -1),
        SUBSTRING_INDEX(profile, 'section Six?', -1)
FROM readers

你如何识别你想用什么来分隔元素?@Nyranith。你好,尼拉尼思在每个分隔符的末尾都有一个问号“?”。因此,将其用作分离器是安全的。而且,每个标题都是相同的。因此,将“section one”后面的所有元素放在同一列中是安全的每个记录都有所有的节吗?Hi Kickstart-是的,所有记录都有完全相同的节和完全相同的名称Hi Kickstart。很抱歉我想我解释得不对。你提到的标题都在正文中。我基本上需要进入每个文本/字符串,提取每个标题正下方的数据,然后将这些信息放在一个单独的列中。上面的查询确实提取了一段文本的每个部分(每个返回行一个部分)。使用规范化数据库,我希望将每个部分提取到目标表的一行。你能把你的表声明放在问题中吗(包括源和目标)。嗨,Kickstart。我已经更新了我的问题,包括表格。感谢您迄今为止的帮助添加了一个简单的解决方案Hello kickstart-感谢代码。我要试一试。快点。我刚刚注意到这些问题都被html代码包住了。那会造成不同吗。我在上面附上html代码
CREATE TABLE sections
(
    id  INT,
    section_name    VARCHAR(255)
);

INSERT INTO sections VALUES
(1, 'section One?'),
(2, 'Section Two?'),
(3, 'Section Three?'),
(4, 'Section four ?');


CREATE TABLE some_table
(
    id  INT,
    full_field  TEXT
);

INSERT INTO some_table VALUES
(1, 'section One?

I enjoy connecting with people and tuning it to what is around them

Section Two?

so they receive the right guidance to resolve issues around them and to encourage and inspire.

Section Three?
I believe that every reading should be uplifting and positive and when someone feels that,

Section four ?

When I wrote the first code for Facebook in January 2004, I hoped it would help students at my college connect and bring our community together.');
INSERT INTO reader_personal_details (`id`, `question1`, `question2`, `question3`, `question4`, `question5`, `question6`)
SELECT id,
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Two?', 1), 'section One?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Three?', 1), 'section Two?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section four ?', 1), 'Section Three?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Five?', 1), 'Section four ?', -1),
        SUBSTRING_INDEX(SUBSTRING_INDEX(profile, 'Section Six?', 1), 'section Five?', -1),
        SUBSTRING_INDEX(profile, 'section Six?', -1)
FROM readers