解析来自一个表的内容,然后插入解析到另一个
问题描述:
的结果我有2个表:解析来自一个表的内容,然后插入解析到另一个
Table document
============================================================================
| id_document | document_address | document_content |
============================================================================
| 1 | C |Example sentences A. Example sentences B.|
| 2 | D |Example sentences C. Example sentences D.|
============================================================================
我想根据点分离document_content并将其插入到语句表与他们DOC_ID所以语句表将包含:
Table sentence :
======================================================================
| id_row | id_document | id_sentence | sentence |
======================================================================
| 1 | 1 | 0 | Example sentences A |
| 2 | 1 | 1 | Example sentences B |
| 3 | 2 | 0 | Example sentences C |
| 4 | 2 | 1 | Example sentences D |
======================================================================
下面的代码:
<?php
require_once 'conf.php';
$doc_id = array();
// get the doc_id
$result = mysql_query("SELECT id_document FROM document");
while($row = mysql_fetch_array($result)) {
$doc_id[] = $row['id_document'];
}
//get the content
$sql = mysql_query('SELECT document_content FROM document WHERE id_document IN (' . implode(",", $doc_id) . ')') or die(mysql_error());
while ($row = mysql_fetch_array($sql)) {
$sentence[] = $row['document_content'];
}
$i = 0;
foreach ($sentence as $sentences){
// Separate based on dot
$saveSentence = preg_split('/\\.\\s*/', $sentences);
$q = mysql_query("INSERT INTO sentence VALUES('','$doc_id','$i','$saveSentence','') ");
$i++;
}
?>
但DOC无法读取_id,并且无法将内容数组插入表中。请帮帮我。非常感谢你:)
答
你没有获取DOC_ID
更换
$sql = mysql_query('SELECT document_content FROM document WHERE id_document IN (' . implode(",", $doc_id) . ')') or die(mysql_error());
while ($row = mysql_fetch_array($sql)) {
$sentence[] = $row['document_content'];
}
$i = 0;
foreach ($sentence as $sentences){
// Separate based on dot
$saveSentence = preg_split('/\\.\\s*/', $sentences);
$q = mysql_query("INSERT INTO sentence VALUES('','$doc_id','$i','$saveSentence','') ");
$i++;
}
与
$sql = mysql_query('SELECT id_document, document_content FROM document WHERE id_document IN (' . implode(",", $doc_id) . ')') or die(mysql_error());
while ($row = mysql_fetch_array($sql))
{
$sentence[$row['id_document']] = $row['document_content'];
}
foreach ($sentence as $doc_id => $sentences)
{
$i = 0;
foreach(preg_split('/\\.\\s*/', $sentences) as $current_sentence)
{
$q = mysql_query("INSERT INTO sentence SET id_document = {$doc_id}, id_sentence = {$i}, sentence = '{$current_sentence}'");
$i++;
}
}
是的,谢谢你这么多@Puggan硒!那我先把它们分开的内容怎么样,所以我可以得到每句话,然后将它们插入句表中的不同行。 – bruine 2012-07-11 14:59:50
我在我的答案中添加了第二个循环,并将您的插入重新编译为'INSERT。 SET'为可读性 – 2012-07-11 15:07:28
太棒了!感谢您的帮助@Puggan Se :) – bruine 2012-07-11 15:11:10