限制保存到其他表的数据的数量

时间:2012-10-09 15:21:48

标签: php mysql

我需要表格:

tb_document           tb_sentence
=================     ===========================================
|doc_id|document|     | id | sentence_id |sentence | doc_id|
=================     ===========================================

我想从document获取tb_document数据。数据是文本,然后解析数据成为句子。 我需要为tb_sentence中的每个文档存储最多50个句子。

这是代码:

foreach ($content as $doc_id => $sentences){ //$content is variable that save document from tb_document
   $i = 0;
   foreach(preg_split('/\\.\\s*/', $sentences) as $current_sentence){
      $q = mysql_query("INSERT INTO tb_sentence SET doc_id = {$doc_id}, sentence_id = {$i}, sentence = '{$current_sentence}'") or die(mysql_error());
      $i<51; $i++;
   }
}

但是,它仍然保存整个数据。请帮我。谢谢你:))

1 个答案:

答案 0 :(得分:3)

在您的代码中,您将$i与51进行比较,但不对比较做任何事情。尝试:

foreach ($content as $doc_id => $sentences){ //$content is variable that save document from tb_document
   $i = 0;
   foreach(preg_split('/\\.\\s*/', $sentences) as $current_sentence){
      $q = mysql_query("INSERT INTO tb_sentence SET doc_id = {$doc_id}, sentence_id = {$i}, sentence = '{$current_sentence}'") or die(mysql_error());

      if(++$i >= 50) 
          break; 
   }
}

break语句将退出foreach循环。